npm link) so you can use the ecp command from your shell.
Getting help
The CLI is built on oclif: built-in--help shows the authoritative list of commands and flags for your installed version.
ecp --help— Lists top-level commands (run,validate,trace, …).ecp <command> --help— Full flags and arguments for that command, e.g.ecp run --help,ecp validate --help,ecp trace --help.
Commands
run
Execute a Context manifest. By default,ecp run enables tracing and saves traces under ~/.ecp/traces (disable with --no-trace).
- context.yaml — Path to the Context YAML file (also accepts
context.json).
Example (OpenAI):
validate
Validate a Context manifest without running it:- -i, —input — Provide required inputs so validation can succeed (e.g.
-i shopifyStoreId=demo -i jiraProject=DEMOforspec.yaml). - —skip-inputs — Validate the Context manifest itself but skip runtime input resolution. Instead of failing, it prints which inputs are required.
--environment <path>— Same semantics asecp run: selects the.envfile for thedot.envprovider (future-proof for validation tooling that resolves secrets).
trace
Display a saved execution trace from a previousecp run:
Examples:
ecp graphis a hidden alias forecp trace --output graph.- Traces are stored as JSON files in
~/.ecp/traces.
trace list
List locally available trace IDs:--environment <path> like ecp run (dotenv file for dot.env; no merge into process.env).
Environment
- OPENAI_API_KEY — Used by the OpenAI provider when
--provider openai(or when the Context implies OpenAI). - OLLAMA_BASE_URL — Optional; overrides Ollama base URL (default
http://localhost:11434).
process.env, dot.env, and os.secrets (see Security). --environment only affects the file backing dot.env, not the shell environment.
System config
The CLI loads system config from (in order):--config <path>./ecp.config.yaml~/.ecp/config.yamlor~/.ecp/ecp.config.yaml
models, tools, loggers, agents, secrets, optional executors / memory, and plugins.installs. Policy lives under the top-level security object, which mirrors those areas (security.models, security.tools, security.plugins, …). Legacy plugins.allowEnable / plugins.security keys are removed; use security.models.allowProviders, security.tools.allowServers, security.plugins, and related subtrees instead. Include version: "0.5" in the file.
Use system config to register MCP servers under tools.servers, model providers under models.providers, and to restrict what the runtime may load via security.*. Inspect or update security with ecp config security get, ecp config security plugins update, and the rest of ecp config --help (plugins installs, models, tools, loggers, secrets, …).
Contexts control which tools an executor may call via policies.toolAccess; the host still decides which server names exist and are allowed (security.tools.allowServers and configured tools.servers).
Full spec: SPEC.md — Host system configuration, annotated config/ecp.config.example.yaml, and TypeScript ECPSystemConfig. See Security for the security model and SETUP.md for setup.
See also
- Quickstart — First run
- Development — Global install and env
- SETUP.md — Full setup guide