Overview
Ottili Coder is not only driven from the desktop app and the dashboard — it can also be controlled directly from the terminal. The Ottili Coder CLI* is the coder command group of the unified `ottili` developer CLI* in the Ottili ONE repository. It submits missions in the same chat-first format used by the cloud and desktop surfaces — the CLI is not a second system, just another client of the same engine.
The CLI is part of Ottili Coder, which is publicly available as Public Beta (BETA)*. The coder commands talk to the Unified API (locally on http://localhost:8100 or your deployed instance). Cloud runs are in Beta (BETA)*, and direct delivery (deployment) is planned (PLANNED)*.
Prerequisites
- Python 3.11 or newer* (the CLI uses
clickandclick-completion). - Git*, so Coder can work inside your repository.
- Access to the Unified API* (locally on port 8100 or your deployed instance).
- A workspace* in Ottili ONE with Ottili Coder enabled, plus an API token.
- Network access for auth, queue sync, credits, and audit.
Installation
The CLI lives in the repository at cli/ottili.py. There is no separately packaged binary to install.
1. Get the repository* — clone or use an existing checkout of Ottili ONE and change into its root directory.
2. Install the Python dependencies*:
pip install -r requirements.txt At minimum it needs click>=8.0.0, click-completion>=0.5.2 and pyyaml>=6.0.
3. Make it executable or set an alias* — call it directly:
python3 cli/ottili.py --help More convenient as an alias (in your shell rc, e.g. ~/.bashrc or ~/.zshrc):
alias ottili='python3 /path/to/ottili_one_v1/cli/ottili.py'Optionally make it executable:
chmod +x cli/ottili.pyAuthentication
The coder commands send requests to the Unified API. There is no separate login command; you configure the connection through environment variables:
OTTILI_WORKSPACE_SLUG– your workspace slug (or--workspaceper command).OTTILI_API_TOKEN(orOTTILI_CODER_TOKEN) – your API bearer token.OTTILI_CLOUD_URL– the Unified API base URL (default:http://localhost:8100).
export OTTILI_WORKSPACE_SLUG="your-workspace"
export OTTILI_API_TOKEN="your-token"
export OTTILI_CLOUD_URL="http://localhost:8100"Verify your environment
Before your first run, check the connection with a probe intake:
ottili coder mission-intake "Add a health-check endpoint" --workspace your-workspaceIf the CLI returns a normalized mission, auth, workspace and API are reachable. Add --json to get the raw MissionIntake wire shape (identical to cloud and desktop).
Available commands
ottili coder mission-intake "<request>"– normalize a raw request into a Coder mission.ottili coder mission-refine "<request>" --answer field=answer– re-normalize after clarifying answers.ottili coder mission-action <mission-id> --action <clarify|plan|dispatch|cancel|retry|reset>– apply a lifecycle action.ottili coder mission-generate-plan <mission-id>– generate a reviewable technical plan.ottili coder job-dependency-graph <job-id>– show the validated, ordered task dependency graph.ottili coder job-dependency-evaluate <job-id>– evaluate the dependency graph with gate/barrier overrides (what-if).
List all commands with ottili coder --help.
Next steps
- How a [mission](/docs/coder-missions) becomes a run.
- The [modes](/docs/coder-modes) of Ottili Coder.
- [Local, cloud and hybrid runs](/docs/coder-local-cloud-hybrid-runs).
Was this article helpful?
