Requirements
- macOS or Linux
- Rust 1.86 or newer
rgon your PATH
Ygg documentation
Local models are first class. Context layers stay inspectable. Customization lives in files, flags, and commands.
Start
rg on your PATHcurl --proto '=https' --tlsv1.2 -LsSf \
https://raw.githubusercontent.com/skaft-software/ygg/v0.1.0-alpha/scripts/install.sh | sh
Restart the shell, then run ygg --version.
The installer is pinned to the alpha. The reference below tracks current unreleased source and may be ahead.
Anthropic
export ANTHROPIC_API_KEY='...'
ygg --model claude-sonnet-4-6
OpenAI
export OPENAI_API_KEY='...'
ygg --model gpt-5.4
ChatGPT subscription
ygg --login codex
ygg
Create ~/.ygg/credentials/custom.json with owner-only permissions.
{
"base_url": "http://127.0.0.1:8000/v1/",
"api_key": "",
"auto_discover": false,
"models": [{
"api_name": "Qwen/Qwen3-Coder-Next",
"display_name": "Qwen3 Coder Next",
"context_window": 131072,
"max_output_tokens": 16384,
"tools": true,
"parallel_tool_calls": false,
"vision": false,
"structured_output": false,
"reasoning": true
}]
}
chmod 600 ~/.ygg/credentials/custom.json
ygg --offline --model 'custom/Qwen3 Coder Next'
--offline skips optional startup discovery. Inference still reaches the selected endpoint.
Use
yggRich terminal UI with native scrollback.
ygg --plainChronological ASCII without cursor control.
ygg -p "review this"Headless, response-only output.
conversation
/new/resume [id]/tree/checkout <id>/compactmodel
/model [id]/cycle-model/thinking [level]/status/cost/cacheview
/theme [name|list|reload]/verbose [on|off]/tool [call-id]/reloadlocal system
/prompt [name] [arguments]/skills [subcommand]/extensions [reload]/sessions/export [path]identity
/login [provider]/logout [provider]/name [name]/quitModels
Ygg keeps one conversation model across OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages.
ygg --model provider/model
/model
/cycle-model
Ygg normalizes the selected model's actual capability. Depending on the model, the picker exposes off, on, effort levels, or a budget.
ygg --reasoning high
/thinking
Context
fixed scaffold
The fixed scaffold covers identity, enabled core tool names, and a terse response contract. The current working directory is added separately. Tool schemas and project context remain explicit layers.
AGENTS.md
~/.ygg/AGENTS.md loads globally. Workspace files load root to current directory only with --workspace-trusted. Disable all context files with --no-context-files.
compaction
The default keeps four recent turns. Use /compact at any time. Active skill state survives compaction and resume.
Markdown or TOML. Deterministic arguments, workspace variables, bounded file includes, and content hashes.
ygg --prompt local-review "focus"
/prompt local-review focus
ygg --debug-prompt --prompt local-review
Discovery reads metadata only. Loading is explicit. Supporting files under references/ and templates/ load lazily.
/skills search rust review
/skills load local-model-review
/skills active
/skills off local-model-review
Tools + safety
core workspace tools
The default model-visible surface also includes search_skills, load_skill, and read_skill_resource. Activated skills can add more tools. Paths are workspace-only by default. Command execution has the full authority of your user account. Ygg is not an operating-system sandbox.
ygg --tools read,search \
--no-context-files --offlineygg --no-editDisables edit and write.
ygg --no-process--no-shell is the same authority gate.
ygg --tools read,edit,exec
ygg --exclude-tools writeDefault execution timeout is 120 seconds. Persisted tool output defaults to 16 KiB. Unresolved mutating calls after a crash are marked indeterminate and are never replayed automatically.
Sessions
Conversations are bounded append-only JSONL, namespaced by workspace. Checkout moves the durable head without deleting ancestry.
continue
ygg --continue
ygg --resume
ygg --resume <id>
inspect
ygg sessions list --query review
ygg sessions inspect <id>
ygg sessions tag <id> rust local-model
export + repair
ygg sessions export <id>
ygg sessions repair <id>
ygg sessions delete <id>
Export validates and redacts by default. Delete moves files to a recoverable trash directory. Repair only removes an interrupted final append after writing a private backup.
Customize
~/.ygg/themes/*.toml.ygg/themes/*.toml--theme-dir~/.ygg/prompts/*.ygg/prompts/*--prompt-template~/.ygg/skills/*/SKILL.md.ygg/skills/*/SKILL.md--skill-dir~/.ygg/extensions/*/extension.toml.ygg/extensions/*/extension.toml--extension-dirResolution is global, trusted project, then explicit paths. Later definitions win. Files must be regular and non-symlink. One broken resource becomes a diagnostic instead of blocking startup.
Ten bundled themes target semantic surfaces, not raw terminal escapes. They adapt across truecolor, ANSI, Unicode, ASCII, light, dark, and plain terminals.
/theme
/theme list
/theme reload
Local JSON-RPC 2.0 processes can add tools, commands, hooks, context, status, and renderers. Discovery, enablement, and executable trust are separate.
ygg --extension-dir ./extensions \
--enable-extension git-tools \
--trust-extension git-tools
Reference
Project config can tighten user authority and resource limits, never relax them. It cannot grant executable extension trust.
model = "custom/Qwen3 Coder Next"
reasoning = "off"
cache_retention = "short"
theme = "zen-mono"
color = "auto"
mouse = "auto"
exec_timeout_secs = 120
max_output_bytes = 16384
context_files = true
offline = false
[compaction]
threshold_fraction = 0.85
keep_recent_turns = 4
--workspace PATHselect workspace root
--workspace-trustedload project config, AGENTS.md, and skills
--model MODELoverride model
--reasoning VALUEoff, on, effort level, or budget
--cache-retention POLICYnone, short, or long
--plainchronological ASCII frontend
-p, --printheadless response-only frontend
--continue / --resume [ID]return to a session
--tools NAMESexact tool allowlist
--no-edit / --no-processremove authority
--offlineskip optional discovery
--helpcomplete current CLI reference
docs track
This is an unreleased reference. The pinned 0.1.0-alpha installer can differ. Check the changelog before relying on source-only behavior.
security ↗ changelog ↗