Documentation

Inspect, validate, test, configure, and integrate generated SolverForge apps.

Operations Commands

Operations commands do not change the domain model structure. They inspect the generated app, validate the working tree, run tests, show web/API routes, print MCP client connection configs, edit runtime configuration, or emit shell integration files.

solverforge info

solverforge info [OPTIONS]

Prints the project name, shell, planning solution type, score type, entities, facts, scalar and list solvable fields, constraints, model resources, and whether solver.toml exists. It requires a generated-style src/domain/ directory.

solverforge check

solverforge check [OPTIONS]

Validates the project’s structure. It does not compile the project and ends by saying so; run cargo build to compile.

Check Result
src/domain/ exists Errors if missing
planning solution parses Errors if no solution is found
entity modules in src/domain/mod.rs exist Errors for missing files
constraint modules in src/constraints/mod.rs exist Errors for missing files
solver.toml exists Warns if missing
move_thread_count and candidate-trace settings Errors for invalid runtime forms or trace capacity
entities have solvable fields Warns for entities with no scalar or list variable
scalar-group and conflict-repair references Errors when generated model-resource refs are stale

check does not reject unknown solver.toml keys; the runtime does, and a solve started with one ends FAILED at once.

solverforge routes

solverforge routes [OPTIONS]

Searches for src/api/routes.rs, src/api/mod.rs, or src/api.rs, then parses Axum .route("...", method(handler)) calls, including chained methods such as get(a).delete(b) and calls split across lines, and prints a METHOD / PATH / HANDLER table. This applies to web and API shells; routers defined in other files are not listed.

solverforge connect

solverforge connect [OPTIONS]

Prints ready-to-paste MCP client configuration for an MCP-shell project: the stdio command plus the Streamable HTTP URL for opencode, Claude Code, Claude Desktop, Cursor, VS Code, and other clients. In a web, API, or CLI project it exits with an error.

Options:

Option Meaning
--write <TARGET> Write the in-project client config for the target: vscode, cursor, claude, or opencode
-p, --port <PORT> Port used in the printed Streamable HTTP URL; when omitted, use .solverforgerc and then 7860

Write targets and their in-project files:

Target Written file
vscode .vscode/mcp.json
cursor .cursor/mcp.json
claude .mcp.json
opencode opencode.json

--write updates only the project’s MCP server entry and replaces the config atomically; JSONC comments in an existing file are preserved. Global client files (Claude Desktop) are printed with their path instead of being modified. See the MCP Shell page.

solverforge connect
solverforge connect --write opencode
solverforge connect --write claude
solverforge connect --write cursor
solverforge connect --write vscode
solverforge connect --port 8080

solverforge test

solverforge test [OPTIONS] [CARGO_ARGS]... [-- <HARNESS_ARGS>...]

Arguments:

Argument Meaning
[CARGO_ARGS]... Arguments passed to cargo test, such as a test-name filter or Cargo flags
[HARNESS_ARGS]... Arguments after --, passed to the test binaries, such as --nocapture

Examples:

solverforge test
solverforge test -- --nocapture
solverforge test integration

solverforge config

solverforge config [OPTIONS] <COMMAND>

Subcommands:

Subcommand Usage Purpose
show solverforge config show Print the contents of solver.toml
set solverforge config set <KEY> <VALUE> Set a dotted TOML key path in solver.toml

config set parses values as integer, float, boolean (true or false), then string. Intermediate TOML tables are created when needed. check and config set reject invalid move_thread_count forms: use "auto", "none", or a table with one non-negative integer count, not a bare integer. Invalid settings are rejected before config set writes the file. See parallel evaluation for the default, pool caps, and rebuild requirement.

Examples:

solverforge config show
solverforge config set termination.seconds_spent_limit 60
solverforge config set environment_mode reproducible
solverforge config set move_thread_count.count 4

config show

solverforge config show [OPTIONS]

Prints the current solver.toml contents. The command has no local arguments or local options beyond the global flags.

config set

solverforge config set [OPTIONS] <KEY> <VALUE>

Arguments:

Argument Meaning
<KEY> Dotted key path in solver.toml
<VALUE> New value

For example, termination.seconds_spent_limit addresses the solver termination limit. Values are parsed as integer, float, boolean, then string. Intermediate TOML tables are created when needed. config set writes non-phase settings; ordered phases edits are manual, and generated model-resource references in solver.toml are exact-ID graph references that destroy re-renders rather than aliases.

solverforge completions

solverforge completions [OPTIONS] <SHELL>

Arguments:

Argument Meaning
<SHELL> One of bash, elvish, fish, powershell, or zsh

Examples:

solverforge completions bash >> ~/.bashrc
solverforge completions zsh >> ~/.zshrc
mkdir -p ~/.config/fish/completions
solverforge completions fish > ~/.config/fish/completions/solverforge.fish

Run the line for your shell, then open a new shell.

solverforge help

solverforge help [COMMAND]...

Prints the same help text exposed by --help. With no argument, it prints top-level help. With one or more command names, it prints help for that nested command:

solverforge help
solverforge help generate
solverforge help generate variable
solverforge help config set

See Also