# Eva documentation > Eva is an open-source, autonomous software factory. It runs coding work end to end, from a spec a machine can check to evidence that it was done. Eva is free and MIT licensed, and it runs on the machine that calls it: there is no hosted API, no account, and no key to request from this site. Every page below is also served as markdown at the same path with `.md` appended. ## When to use Eva - You want to run a coding prompt from a script, a hook, or a CI job and branch on a real exit code, rather than parse a chat transcript. `eva -p` prints the answer to stdout and exits non-zero when the run fails. - You want the work recorded. Eva folds everything it shows from a durable trace on disk, so a session survives `kill -9`, and it records what the provider said each request cost. - You want to reach a coding model through one contract instead of one SDK per vendor. The provider is a plugin, and `--model provider/model` picks it per run. - You want to add a capability — a model provider, a surface, a trace store, a tool — without forking. Every capability in Eva is already a plugin, and a plugin is loaded with `--plugin `. - You want a coding agent that reads a repository's configuration only after a person grants it. `eva trust` is a verb someone types; it is not a file a repository can ship. ## When not to use Eva - You need a hosted API. Eva runs on your machine and serves no public HTTP endpoint. There is no key to obtain and no base URL to call. - You need one spec raced across several harnesses, or unattended overnight runs. Both are on the roadmap and neither ships today. - You need the work checked against acceptance criteria. Eva records an agent's claim as a claim, never as evidence. The verifier that decides whether work passed is a later stage. ## Start here ```sh npm i -g @missingstudio/eva eva -p "review the diff" ``` - [Install](https://docs.evafactory.co/install.md): every channel, and how to verify a download. - [First run](https://docs.evafactory.co/first-run.md): the shortest path from install to an answer. - [CLI reference](https://docs.evafactory.co/reference/cli.md): every command and every global flag. - [Exit codes](https://docs.evafactory.co/reference/exit-codes.md): what each code means in a pipeline. ## Documentation - [What is Eva](https://docs.evafactory.co): Eva is an open-source, autonomous software factory. It runs coding work end to end, from a spec a machine can check to evidence it was done. - [Contact](https://docs.evafactory.co/about/contact): Which channel answers what about Eva — questions, bugs, security reports, and patches — and what to include so the answer comes back once. - [Contributing](https://docs.evafactory.co/about/contributing): Clone Eva, run the one command CI runs, and know the conventions before you open a pull request. - [Privacy](https://docs.evafactory.co/about/privacy): What this documentation site stores, what Eva itself writes to disk, and where a request goes when you follow a link off this page. - [Roadmap](https://docs.evafactory.co/about/roadmap): What Eva is today, and the stages that take it from a terminal client on a plugin kernel to a software factory. Each stage has an exit test it can fail. - [Troubleshooting](https://docs.evafactory.co/about/troubleshooting): Fixes for what people actually hit with Eva — a setting that does nothing, a missing key, a chord the terminal cannot send, a plugin that misbehaves. - [Concepts](https://docs.evafactory.co/concepts): The words Eva uses for its own machinery — Session, Run, Trace, Plugin, Harness, Cost, and the rest. One concept has one name. - [Configuration](https://docs.evafactory.co/configure/configuration): Where Eva reads configuration from, how the layers resolve, every key you can set, and how to ask Eva which layer a value actually came from. - [Models](https://docs.evafactory.co/configure/models): Set the model for one run with a flag, inside a session with the model command, or permanently with the model key. The Catalog holds what Eva knows. - [Plugins](https://docs.evafactory.co/configure/plugins): Every capability in Eva is a plugin. Turn one on or off in config or with a flag, give it options, and swap a default — the trace sink included. - [Providers](https://docs.evafactory.co/configure/providers): Eva ships Anthropic and OpenAI, and talks to any OpenAI-compatible endpoint you name in config. One API key each, and retries you can tune. - [Trust and the .eva directory](https://docs.evafactory.co/configure/trust): A repository can ship a .eva directory with a team's Eva setup. Eva reads it only after you run eva trust there, because the grant is yours to give. - [Connect a model](https://docs.evafactory.co/connect-a-model): One API key in the environment connects Anthropic or OpenAI, and your key never reaches a settings file, a log, or the session record. - [How plugins work](https://docs.evafactory.co/extend/how-plugins-work): Eva is a small kernel that loads plugins. There are exactly four extension points — Domain, Slot, Hook, and Broadcast — and no fifth. - [Write a plugin](https://docs.evafactory.co/extend/write-a-plugin): Author an Eva plugin — declare the config keys it reads, register into an extension point, clean up after itself, and fill or read a Slot. - [Your first run](https://docs.evafactory.co/first-run): Open the Eva console, ask a question, read the answer, and see what it cost. Then do the same thing from a shell pipeline. - [Install](https://docs.evafactory.co/install): Install Eva with Homebrew, the install script, npm, or from source, and verify the download you got before you run it. - [CLI reference](https://docs.evafactory.co/reference/cli): Every Eva command and every global flag, with what each one does and what it returns. - [Exit codes](https://docs.evafactory.co/reference/exit-codes): What each Eva exit code means, why an unread config key never changes one, and how to make a shell pipeline stop when a run fails. - [What is an autonomous software factory?](https://docs.evafactory.co/software-factory): An autonomous software factory runs coding work from a machine-checkable spec to verified evidence, across every coding agent harness you already pay for. - [Commands](https://docs.evafactory.co/use/commands): Every slash command in the Eva console. They are answered locally, never reach a model, and cost nothing. - [The console](https://docs.evafactory.co/use/console): The Eva console is the interactive surface you type into. It shows a live area while a Run happens, then replaces it with the committed record. - [Cost and usage](https://docs.evafactory.co/use/cost): Eva shows what a provider said a request cost, and marks an estimate as an estimate. It never multiplies tokens by a rate and calls the result a cost. - [Keys and bindings](https://docs.evafactory.co/use/keys): How Eva spells a key chord, the six bindings the console ships, and how to add a chord for a command or replace a default binding in config. - [Print mode](https://docs.evafactory.co/use/print-mode): Run one prompt, write the answer to stdout, and exit. Print mode exits non-zero when the answer fails, which makes Eva safe inside a shell pipeline. - [Sessions](https://docs.evafactory.co/use/sessions): A Session is Eva's durable, resumable transcript. It survives kill -9, because everything Eva knows is folded from a Trace on disk rather than held in memory. - [Themes](https://docs.evafactory.co/use/themes): Eva ships three themes and takes custom ones. A theme is a name and four colors, written in config or dropped into a .eva/themes directory. ## Scoped indexes - [Every page, in full](https://docs.evafactory.co/llms-full.txt): every page's markdown, concatenated. - [Using Eva](https://docs.evafactory.co/use/llms.txt): the use pages only. - [Configuring Eva](https://docs.evafactory.co/configure/llms.txt): the configure pages only. - [Extending Eva](https://docs.evafactory.co/extend/llms.txt): the extend pages only. - [Reference](https://docs.evafactory.co/reference/llms.txt): the reference pages only. - [About](https://docs.evafactory.co/about/llms.txt): the about pages only. ## Machine-readable - [Pricing](https://docs.evafactory.co/pricing.md): zero, and what you do pay for. - [Authentication](https://docs.evafactory.co/auth.md): why there is no credential to obtain. - [Resource catalog](https://docs.evafactory.co/.well-known/ard.json): what this origin offers. - [Agent skills](https://docs.evafactory.co/.well-known/agent-skills/index.json): the tasks these pages teach. - [Search index](https://docs.evafactory.co/api/search): the full-text index, as one file. - [Sitemap](https://docs.evafactory.co/sitemap.xml): every indexable URL, with dates. ## Elsewhere - [Eva](https://evafactory.co): what Eva is, and how to install it. - [Agent index](https://evafactory.co/llms.txt): the same guidance, on the marketing origin. - [Repository](https://github.com/missingstudio/eva): the whole tree, MIT licensed.