SAC
A fork of nac, a terminal-based coding agent with an orchestrator/worker architecture. SAC shares NAC's baseline -- threading, worksets, TUI, tools, sessions, sandbox, MCP, skills, AGENTS.md -- but diverges in several areas.
Install
|
Uninstall
|
Upgrade
What SAC adds
Features present in SAC but not in NAC:
- Goal system. Autonomous multi-turn goal pursuit with token budgets, evidence-based completion audits, blocked audits (3 consecutive turns), a 6-status lifecycle (Active, Paused, Complete, Blocked, UsageLimited, BudgetLimited), and mid-turn steering for budget warnings and objective changes. Managed via
/goal set|show|clear|pause|resume|edit. - Stream panel. Live model output streaming in the TUI (Ctrl-S).
- Prompt history. Up/Down arrow cycling through previous prompts.
- Slash commands with autocomplete popup. Commands surface in a popup as you type.
- Custom commands from .md files. Place
.mdfiles with YAML frontmatter in.sac/commands/(project) or~/.config/sac/commands/(global). Template variables:$ARGUMENTS,$WORKING_DIRECTORY. - Persistent terminal tool. Named PTY sessions that persist beyond a single
exec_commandcall. sac configCLI suite. Subcommands:show,init,path,log-path,logs,tail-log,doctor,reload.- Structured file logging with rotation. Logs to
$SAC_HOME/logs/. - Additional auth methods.
--with-api-key,--with-access-token,--headlessflags for the device-code flow; directapi_keyfield in config.toml. - Reasoning controls.
--reasoning-summary(auto, concise, detailed) and--reasoning-context(current_turn, all_turns) CLI flags. - File changes panel. TUI panel showing modified files (Ctrl-F).
- Session picker UI. Interactive session selection on
sac resume. - Conway's Game of Life background animation.
What SAC removes
Features present in NAC but not in SAC:
- No Anthropic/Claude backend. NAC supports Anthropic models. SAC is OpenAI-compatible APIs only.
- No web dashboard or HTTP server. NAC has
nac-webwith a REST API and SSE streaming for managing multiple sessions from a browser. SAC is TUI only. - No SSH remote workers. NAC can dispatch workers to remote machines over SSH. SAC runs workers as local processes only.
- No workspace diff view. NAC has full git diff rendering in the TUI. SAC does not.
- Single crate. NAC uses a three-crate split. SAC compiles as a single crate and single binary.
What SAC changes
Where both have the feature but SAC does it differently:
- Config paths.
.sac/and~/.config/sac/instead of.nac/and~/.config/nac/. - Store path.
.sac/store.dbinstead of.nac/store.db. - Binary name.
sacinstead ofnac. - Env prefix.
SAC_HOMEinstead ofNAC_HOME.
Basic usage
Config
Config lives at ~/.config/sac/config.toml (or $SAC_HOME/config.toml). CLI args and env vars override config values.
SAC-specific options not found in NAC:
[]
= "sk-..." # direct key (alternative to env var)
= "high"
# Reasoning controls (also settable via CLI flags):
# --reasoning-summary auto|concise|detailed
# --reasoning-context current_turn|all_turns
For the full set of shared config options (model, sandbox, worker, MCP servers), see NAC's documentation.
For everything else
Threading, worksets, sandbox flags, MCP configuration, skills, AGENTS.md, and session storage all work the same as in NAC. See NAC's README for documentation on shared features.
Honorable credit: @nyxkrage for his fork/changes on nac and @sapiosaturn for nac 🙏