Skip to content
latest
Command Line / latest

Agent Workflows

Every discovery surface has a machine-readable mode, and only a few commands accept dry runs. Use the command catalog to learn the surface instead of guessing from another framework.

Discover the command surface

1andurel commands --json
2andurel commands --markdown
3andurel commands --check
4andurel --agent --help

commands --json returns data.commands[]. Each entry includes when_to_use, when_not_to_use, prerequisites, examples, and meta fields such as mutating and supports_dry_run. --check validates that every command has complete metadata. --agent --help returns the catalog as JSON rather than human help.

1andurel commands --json --jq '.commands'

Inspect the project

1andurel inspect project --json
2andurel inspect domains --json
3andurel inspect handlers --json
4andurel inspect routes --json
5andurel inspect jobs --json
6andurel inspect migrations --json
7andurel patterns list --json
8andurel patterns show domain --json

inspect handlers prints each constructor's parameters and the routes its Register mounts. inspect routes nests the manifest under data.routes and includes host bindings and is_inertia. inspect domains reports each entity's table, fields, validation coverage, and whether its receiver is wired. All inspect commands and patterns are read-only.

Output modes

Flag Use
--json Full {ok,data,summary,breadcrumbs} envelope
--agent Structured output with human progress suppressed
--jq '.field' Simple field-path selection from data
--md Markdown where supported
--quiet Suppress non-essential human output
--verbose Emit verbose output

Structured failures are stable:

1{
2  "ok": false,
3  "code": "usage_error",
4  "error": "unknown pattern \"bogus\"",
5  "hint": "Run andurel patterns to list the available pattern ids.",
6  "exit_code": 1
7}

Read hint and breadcrumbs before trying another command. --jq is not a full query language: it walks object fields only, so andurel inspect project --json --jq '.module' works but array indexing does not. --count and --ids-only work on list commands where listed in their help, for example andurel inspect routes --count and andurel inspect migrations --ids-only.

Preview mutations

Dry runs exist only where the command advertises them:

1andurel new orbit --dry-run --diff --json
2andurel upgrade --dry-run --diff --json
3andurel packages update --dry-run --json

Most commands that mutate do not have a dry-run mode. andurel generate has no dry run; it creates a migration file. The commands that stream an external process or need a TTY reject structured output: build, run, fmt, console, generate migration, db create, db drop, db nuke, db rebuild, and every db migrate command. db seed is the exception and accepts them, for example andurel db seed --list --json. Run the others plainly and inspect the database or working tree afterwards.

Destructive database commands (db drop, db nuke, db rebuild) prompt for confirmation. Pass --force for automation; it also permits protected system database names.

Follow the edit loop

1andurel inspect project --json
2andurel patterns show handler
3# write the handler, route, and runtime wiring
4andurel sync routes --json
5andurel verify --json
6andurel doctor --json

verify --json returns data.steps[] with a status per step. A failed run reports each violation with rule, file, line, message, and fix, and exits 9. Apply the fix and run it again. doctor --json is read-only and lists drift checks separately, including routes.ts, payloads.ts, templ, narsilc, and go vet.

Install the skill

1andurel skill install --harness opencode
2andurel skill show --json

--harness accepts codex, claude, pi, opencode, and crush (comma-separated or repeated). Pass at least one so installation never waits for an interactive selection.