01 / Why it feels better
More bounded than chat. More legible than autopilot.
The system does real work, but it never asks the developer to stop caring about scope, review, or authorship.
Install the CLI, bring a model API key, and start coding. Apsara keeps your repositories, sessions, checkpoints, and project memory local while you stay in control of every meaningful change.
pipx install apsara-agenticconst agent = await apsara.inside("./repo");const plan = await agent.trace({intent: "refactor approval flow",guardrail: "human-review"});return plan.review();Patch prepared · 2 files changed
Waiting for human approval before write
01Repo-bound
Project-local init and config stay with the codebase.
02Diff-first
Meaningful edits pause for human review before they land.
03Session-aware
The workflow keeps durable context instead of resetting every time.
Product View
Runtime / 01—04
This is the part worth showing. Project-local startup, bounded tools, hidden internals on demand, and a review step before edits land all turn the agent loop into something developers can actually trust.
01 / Why it feels better
The system does real work, but it never asks the developer to stop caring about scope, review, or authorship.
02 / checkpoint
The developer reviews the diff before meaningful writes touch the repo.
● agent.event
status: "awaiting_review"
03 / checkpoint
Tool chatter stays hidden until /details is explicitly opened.
● agent.event
status: "details_available"
04 / checkpoint
The workflow surfaces what changed, why it changed, and what still needs a decision.
● agent.event
status: "context_persisted"
Product tone
Calm enough to trust. Clear enough to inspect. Useful enough to keep using.
Human loop
That means workspace scoping, review gates before writes, and internal activity that stays available without taking over the entire interface.
// Review stays in the critical path instead of getting bolted on after the fact.
Capabilities
The value is not speculative. These are the real local behaviors that make the CLI more trustworthy than a generic AI tab.
workspace.init
Apsara starts inside the repo, keeps config where the work lives, and avoids the disconnected AI chat problem.
tools.scope
Search, reads, writes, and line replacement stay bounded to the allowed root instead of wandering across the machine.
review.diff
Meaningful changes stop at a review gate so the developer keeps the final say before edits apply.
trace.details
Tool activity stays quiet by default, while /details gives power users the exact work trail when they want it.
events.persist
Typed run state, local journals, checkpoints, and verification keep the agent loop inspectable without a hosted Apsara backend.
session.resume
Conversation history and usage events stay on your machine so work remains durable without cloud synchronization.
How It Works
Bring your provider, initialize the repo, and start coding. No Apsara account or cloud workspace sits between you and your tools.
Run apsara login and save your OpenCode, OpenAI, Anthropic, Google, Groq, or other provider key locally.
apsara loginRun apsara init inside the project so workspace boundaries, instructions, and local configuration live with the codebase.
apsara initRun apsara chat, ask for meaningful work, and review or reject changes before they land.
apsara chatStart locally
Install Apsara without creating an account, connect the model you already use, and keep the complete coding workflow on your machine.