47 tools available in single-command and interactive REPL modes — no LLM subscription required for direct tool invocation.
By the SchemaSmith Team ยท Last reviewed
Launch ask-forge from a schema product directory and have a conversation.
Every tool works the same way in both modes. The difference is session management: single-command mode runs one tool and exits, while the REPL keeps your context loaded across multiple commands.
Run a tool and exit. Provide --product and --template on every invocation. Ideal for scripting, automation, and one-off operations.
ask-forge <command> [options]
Examples:
# List all tables in a template
ask-forge list-tables --product ./MyProduct --template Default
# Review schema for issues
ask-forge review-schema --product ./MyProduct --template Default
# Show a specific table's structure
ask-forge show-table --product ./MyProduct \
--template Default --table Users
# Output as JSON for scripting
ask-forge list-tables --product ./MyProduct \
--template Default --json
Launch with no arguments. The --product and --template context persists across commands. If an LLM is configured, natural-language questions work too.
ask-forge
Example session:
> navigate-context --product ./MyProduct --template Default
> list-tables
> show-table --table Users
> dependencies --table Users
> review-schema --tables "Users,Orders"
# Natural language (requires LLM provider)
> What tables reference the Users table?
> Show me missing indexes on Orders
The same tool has three name formats depending on where you use it:
| Context | Format | Example |
|---|---|---|
| Internal / code registry | snake_case |
list_tables |
| CLI & REPL | kebab-case |
list-tables |
| MCP server | schemasmith_ prefix + snake_case |
schemasmith_list_tables |
In the CLI and REPL, always use kebab-case. The MCP server uses the schemasmith_ prefix to avoid tool-name collisions with other MCP servers.
All 47 tools are organized into four tiers based on their impact level. Access is governed by three trust levels — Observer, Assistant, and Operator — each unlocking progressively more powerful tiers.
Available at all trust levels (Observer and up). Read and analyze schema data without making changes.
| Command | Description |
|---|---|
navigate-context | Set the active product, template, or table (required before inspecting tables) |
show-context | Show the active product, template, and table selection |
list-tables | List all table names in the current template |
list-templates | List all templates in the current product |
list-folders | List all script folders with summary info |
list-scripts | List scripts in a specified folder |
list-connections | List configured database connections |
show-table | Show full table JSON: columns, indexes, and foreign keys |
show-config | Show current configuration and database connections |
show-conventions | Detect naming conventions from the current template |
show-platform-capabilities | Show platform capabilities, naming rules, and feature support |
check-data | Generate SQL to check data quality: nulls, orphans, or duplicates |
dependencies | Analyze the FK dependency graph: list, circular references, topological sort, or cascade impact |
review-schema | Analyze schema for naming, indexing, nullability, and relationship issues |
validate-json | Validate table JSON against platform schema rules |
diff-tables | Compare two table definitions and show differences |
plan-migration | Generate a migration plan comparing two git refs |
search-schemas | Search columns across all tables by name, type, or properties |
search-knowledge | Search knowledge base articles for best practices |
list-materialized-views | List materialized views in the current template (PostgreSQL only) |
show-materialized-view | Show a materialized view definition (PostgreSQL only) |
diff-materialized-views | Compare two materialized view definitions (PostgreSQL only) |
list-indexed-views | List indexed views in the current template (SQL Server only) |
show-indexed-view | Show an indexed view definition (SQL Server only) |
diff-indexed-views | Compare two indexed view definitions (SQL Server only) |
discover-tools | Find specialized tools by describing what you want to do |
execute-tool | Run a tool by name with arguments (use after discover-tools) |
view-log | View or open external tool log files |
Requires Assistant trust level or higher. Produce new content — schemas, change analysis, connection config — without altering existing files.
| Command | Description |
|---|---|
generate-schema | Generate platform-specific table JSON from a natural-language or structured blueprint |
suggest-changes | Analyze a proposed change and generate migration scripts with risk assessment |
manage-connection | Set or clear a database connection for a platform |
Requires Operator trust level. Create or change files in your schema package. All tools prompt for confirmation before writing.
| Command | Description |
|---|---|
apply-change | Modify schema JSON files to apply changes |
create-table | Create a new table with platform-correct conventions and an auto-generated PK |
rename-column | Rename a column with cascade through indexes, FKs, and constraints |
rename-table | Rename a table with FK cascade and script scanning |
apply-generated-schema | Write generated schema tables to the template directory as JSON files |
save-script | Save a SQL script to a product/template script folder |
save-migration | Save a migration plan as a markdown summary and SQL scripts |
create-package | Create a deployment package (zip) from schema files |
add-folder | Create a script folder with QuenchSlot inference, or a subfolder |
manage-tokens | Manage script tokens: list, add, update, remove, scan, or suggest |
configure-data-delivery | Configure data delivery settings for a table |
create-materialized-view | Create a materialized view definition file (PostgreSQL only) |
create-indexed-view | Create an indexed view definition file (SQL Server only) |
Requires Operator trust level. Run the SchemaSmith CLI tools as subprocesses against live databases. All tools prompt for confirmation.
| Command | Description |
|---|---|
run-schema-tongs | Extract schema from a database to JSON files |
run-schema-quench | Apply schema JSON to a database (always defaults to dry-run mode) |
run-data-tongs | Extract table data to JSON content and MERGE scripts |
These options are available on all commands:
| Option | Short | Description |
|---|---|---|
--product <path> |
-p |
Path to the SchemaSmith product directory. Persists across commands in REPL mode. |
--template <name> |
-t |
Template name within the product. Persists across commands in REPL mode. |
--json |
Output results as JSON instead of rich formatting. Useful for scripting and automation. | |
--yes |
-y |
Skip confirmation prompts for this invocation (applies to Modify and External commands). |
There is no --trust-level flag and no global --platform flag. Trust level is set in your config file (agent.trustLevel) or the REPL (config set trustlevel) — see Trust Levels. Platform is a per-command parameter on connection and external commands (values SqlServer, PostgreSQL, MySQL), auto-detected from product context when omitted.
# List all commands
ask-forge --help
# Help for a specific command
ask-forge list-tables --help
# Check installed version
ask-forge --version