zfinix/aster/aster-capabilities

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

The complete map of what Aster can do and the exact command, flag, slash command, key, or config for each: install and sign-in, the chat TUI, permission modes and rules, every agent tool, review and fix, sessions, memory, config/keys/provider/model, mom.yaml routing, skills, plugins, MCP, web tools, sub-agents and `aster run`, cron and reminders, Telegram remote, /goal loops, and the browser, VS Code, Zed, and desktop surfaces. Use when someone asks "what can Aster do", "how do I X with aster", "is there a command for", or before recommending a workflow, so the answer names a real capability instead of guessing.

Install

npx vskill@latest install zfinix/aster/aster-capabilities

SKILL.md

Everything Aster can do

Aster is a self-hostable agent harness for software work: one aster binary that chats, edits, runs commands, reviews diffs, remembers, and runs on a schedule, in a terminal, a browser, VS Code, Zed, or a desktop window. Every subcommand takes --json (before or after it) and turns errors into {"ok":false,"error":…}. Every command that runs a model takes --model and --effort off|low|medium|high|xhigh|max|ultra.

When a question is "can Aster do X", find X below and answer with the command. When unsure whether a flag still exists, run aster <cmd> --help; it is the source of truth.

Install, upgrade, sign in

sh
curl -fsSL https://withaster.dev/install | sh # binary install
cargo install --path crates/aster-cli # from source, Rust 1.85+
aster upgrade # swap in the latest release
aster upgrade --version 0.4.0 --force # pin or reinstall
aster init # wizard: provider + key into ~/.aster
aster init --local # config in this repo instead
aster init --yes --force # default aster.yaml, no questions
aster login # GitHub (for --pr and --comment)
aster login codex | openrouter | zai # provider sign-in via browser
aster logout # drop every stored login
aster status # what the next turn runs with
aster announce [--dismiss id,id] # undismissed release notes as JSON

Config lives in ./aster.yaml (repo) merged over ~/.aster/aster.yaml; keys live in .env files, never in yaml. Precedence: CLI flags > env > aster.yaml > defaults.

Chat

sh
aster # TUI in the current repo
aster "why does the build fail?" # one-shot, prints and exits (--print / -p)
echo "explain this repo" | aster # piped stdin is the prompt
aster --continue # resume this repo's latest session
aster --resume [ID] # pick a session, or resume one by id
aster --session ID "next question" # persist into a named session
aster --messages-json history.json # caller owns the transcript (- for stdin)
aster --compact --messages-json h.json # fold history into a summary, print it
aster --stream # NDJSON events out, approval replies in
aster --no-tools # plain chat, no read/search/edit
aster --no-mcp # start instantly; /mcp connects later
aster --allow-edits # let a scripted turn edit files
aster --permission-mode plan|manual|auto|edit|yolo

Chat works outside a repo too, with less to look at.

Keys in the TUI
KeyDoes
enterSend; while a turn runs it queues the message
escInterrupt the running turn; esc esc quits
shift+tabStep to the next permission mode
ctrl+jNewline without sending
ctrl+oThe /switch panel
@Mention a repo file (images and documents attach as content)
↑ ↓Move the cursor, then step through past messages
Slash commands
CommandDoes
/switchThinking, mode, effort, model, provider in one panel
/model [id], /mSwitch model or open the picker
`/provider [id\url], /p`Switch endpoint, then pick a model
/mode [name]plan, manual, auto, edit, yolo
/effort [level]Set or cycle the reasoning budget
/thinkingPrint the model's thinking in full or not
/yoloToggle yolo (guardrails off, red theme)
/mom [resume]Show the mom.yaml policy state; resume re-arms it after a manual /model
/resume, /rReopen a saved session
/clear, /cStart fresh
/compactFold earlier turns into a summary
/statusSession, model, context, token usage
/diff, /dUncommitted changes
/mcpMCP servers and their tools; connects them if --no-mcp skipped it
/skillsPick a skill to load
/memoryWhat Aster remembers here
/themeDark or light
/welcomeShow or hide the session header, saved to ui.welcome
/goal <condition>Loop turns until a separate judge model says the condition is met (see Goals)
/help, /quitThe list above; exit

Installed skills that declare a command also appear as slash commands (for example /write-tests).

Permission modes and rules

One setting gates edits and commands: shift+tab in chat, --permission-mode per run, permissions.mode in aster.yaml.

ModeDoes
planExplore and present a plan. Never edits or runs
manualAsk before every edit and command (denies when headless)
autoEdit and run, pause on risky commands (sudo, rm, curl, ssh…)
editLike auto but commands are trusted; only a rule stops one. Default
yoloNo rules, no sandbox. Asks first

Rules use one language for all tools, precedence deny > ask > allow > built-ins > mode:

yaml
permissions:
mode: edit
allow: ["Bash(cargo test:*)", "Edit(src/**)", "Read(**/.env)"]
ask: ["Edit(migrations/**)", "Bash(git push:*)"]
deny: ["Bash(npm publish:*)", "Edit(infra/**)"]
use_default_rules: true # asks on .git/**, workflows, hooks; refuses secrets
additional_directories: ["~/Downloads"] # readable outside the repo without asking
allow_credentials: ["gh:~/.config/gh"] # sandbox credential dirs a command may read

A Bash rule matches inside bash -lc "…" too. Outside yolo, commands run in a sandbox: writes limited to the repo and temp, secrets stripped from the environment, network on with per-domain approval.

What the agent can do inside a turn

These are the tools the model calls. Knowing them tells you what to ask for.

ToolDoes
read_fileRead with line numbers, optional start_line/end_line. PDF, Word, PowerPoint, Excel, ODF, EPUB, RTF convert to Markdown. Outside-repo and ~ paths prompt
list_files, find_files, search_filesDirectory listing, glob search, regex content search (smart-case, grouped by file)
exploreSeveral lookups in one call
edit_fileSearch-and-replace edits, gated by the permission mode
ast_grep, ast_editStructural search and rewrite over syntax trees
lsp_definitions, lsp_references, lsp_diagnosticsLanguage-server navigation and errors
run_command, run_testsShell in the sandbox (timeout agent.command_timeout_secs); the test runner
agentSpawn sub-agents from the roster (see Sub-agents)
ask_userStructured question with options
update_plan, exit_plan_modeVisible step plan; the plan-mode approval handshake
remember, recall, forgetDurable memory (see Memory)
read_skillLoad a skill's body on demand
open_previewOpen a URL or file in the browser (ASTER_NO_BROWSER=1 prints the URL instead)
security_scanStatic security scan of the working tree
MCP toolsAnything a configured server exposes, injected progressively; web/search and web/extract ship built in

Limits: agent.max_tool_rounds (60), agent.command_timeout_secs (300), agent.compact_budget_chars (192000), agent.max_output_tokens (8000), agent.language (the user's), env ASTER_MAX_TOOL_ROUNDS, ASTER_COMMAND_TIMEOUT, ASTER_COMPACT_BUDGET, ASTER_MAX_TOKENS, ASTER_LANGUAGE.

Review

Hypothesize, retrieve evidence from a local symbol index, verify by trying to refute, shape. Findings carry file, line, severity, category, title, suggestion, confidence.

sh
aster review # current branch
aster review --range main..HEAD
git diff HEAD~1 | aster review --diff -
aster review --pr 42 [--repo owner/repo] [--token T]
aster review --pr 42 --comment [-y] # post inline PR comments
aster review --tui # browse findings
aster review --json # data for CI
aster review --stream # NDJSON progress for UIs
aster review -i "src/**/*.rs" -x "**/*.lock" --min-confidence 0.6
aster review --no-index # faster, less evidence
aster review --effort high

Config under review: in aster.yaml: model, hypothesis_model, verify_model, base_url, min_confidence, max_diff_bytes, analyzers: [semgrep, ast-grep], astgrep_rules, effort, web_search, focus_areas, include, exclude. model: auto picks from OpenRouter's live rankings (ASTER_ROUTER_TIER=cheap|balanced|strong, see aster model router). Env: ASTER_VERIFY_MODEL, ASTER_HYPOTHESIS_MODEL, ASTER_VERIFY_CONCURRENCY.

Fix

sh
aster review --json | aster fix # dry run: preview the patches
aster review --json | aster fix --apply # write them
aster fix --findings-json findings.json --apply --repo-root .

Sessions

Every chat, ACP thread, and scheduled run is a session under ~/.aster.

sh
aster sessions [list] [--all] # this repo, or every project
aster sessions show ID
aster sessions rename ID "title"
aster sessions delete ID
aster sessions prune [--keep N] [--older-than DAYS] # empties always go
aster sessions import [--from claude|codex|cursor|opencode|hermes] [--dry-run]

Memory

Two layers: short project facts always in context, named blocks listed by title and read on demand. The agent writes with remember, reads with recall, retracts with forget.

sh
aster memory [list]
aster memory add "we deploy from release, never main"
aster memory add "prefers terse replies" --title tone
aster memory show tone
aster memory remove tone

Config, keys, provider, model

sh
aster config # form in a terminal, table when piped
aster config list | get KEY | set KEY VALUE [--global|--local] | unset KEY
aster config path
aster config edit [--global|--local]
aster config providers | provider [ID --model M] | models [--capabilities] | model [ID]
aster config keys [--all] | key [VAR [VALUE]] [--local]
aster key list [--all] | get VAR | set VAR [VALUE] [--stdin] [--local] | unset VAR | path
aster provider list
aster provider use openai [--model gpt-5.5] # endpoint and model together
aster model list [--capabilities] | use ID | recommended
aster model router [--tier cheap|balanced|strong]

Any OpenAI-compatible endpoint works. A key var named for the endpoint (ANTHROPIC_API_KEY, OPENROUTER_API_KEY) beats the shared ASTER_API_KEY. ASTER_MODEL and ASTER_BASE_URL in the shell outrank the file and are reported when set.

mom.yaml: model routing per turn

Drop mom.yaml in the repo root or ~/.aster/. Entries describe intent (power, thinking, prefer), switch rules fire on conditions like planning, stuck, looping, model-down, and a cheap router judges the rest. Switches show as mom: notes in chat.

sh
aster mom check # validate, show what each entry resolves to
aster mom route "refactor the auth module" # which entry the router would pick

Spec: specs/mom.md. Logs: ~/.aster/logs/mom-router.jsonl, mom-switches.jsonl.

Skills

Folders with a SKILL.md; titles are indexed, bodies load when relevant. Five core skills are built in and listed; eleven more about the agent's own conduct are internal and never shown. A skill installed under <skills root>/internal/<name>/ is internal too. Ten optional skills are bundled off by default; aster skills bundled marks the internal ones, which install into internal/.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/zfinix/aster/aster-capabilities/badge)](https://verified-skill.com/skills/zfinix/aster/aster-capabilities)

Something wrong with this skill or its page? Tell us.