| title | Getting started |
|---|---|
| description | Install Aster, connect a model, and run your first turn in a repository. |
curl -fsSL https://withaster.dev/install | shThe installer downloads the binary for your platform and puts aster on your
PATH. Inspect the script first if you prefer
to read what runs.
From source instead, with Rust 1.85+:
cargo install --path crates/aster-cliUpgrade later with aster upgrade, or pin a version with
aster upgrade --version 0.4.0 --force.
Run aster init in any directory. The wizard walks through:
- Provider and model. Pick from the catalog, sign in through the browser,
or paste an API key. Keys are written to
~/.aster/.env, never to yaml. - Scope. Global (
~/.aster) by default, or--localto keep the config in the repository. - Web keys, optional. Search and page extraction work without a key; crawl and screenshots need one.
aster init --yes --force skips the questions and writes defaults. aster status shows what the next turn will use.
Provider sign-in is also available on its own:
aster login # GitHub, for --pr and --comment
aster login codex # ChatGPT subscription, no API key needed
aster login openrouter
aster login zaiaster login codex runs on a ChatGPT subscription against
https://chatgpt.com/backend-api/codex. Aster translates OpenAI's Responses API
in both directions, so models and tools behave as they do anywhere else.
In a repository:
cd your-repo
asterThe TUI prints a session header (model, provider, skills) and a prompt. Start with a question:
where does the retry logic live?
Aster reads files, searches, and answers with file and line references. Then ask for a change:
add a timeout to that call and a test for it
In the default edit mode, edits land in your working tree and commands run in
a sandbox. Press esc to interrupt a turn, shift+tab to change the permission
mode, and esc esc to quit.
aster # chat in the current repo
aster --continue # resume this repo's latest session
aster --resume # pick a session
aster "why does the build fail?" # one-shot: print the answer and exit
echo "explain this repo" | aster # piped stdin is the promptOutside a repository, chat still works, with less to look at.
- Chat: keys, slash commands, and one-shot mode.
- Permissions: the five modes and the rule language.
- Configuration: every
aster.yamlkey.