Slash Commands
Start an input with / in the TUI to trigger a command and get an autocomplete menu. The 50+ built-in commands are organised below; commands loaded from Skills and Plugins also appear in the menu automatically.
Core
| Command | Purpose |
|---|---|
/login | Recommended — one command runs AtomGit OAuth + claims CodingPlan free tokens + auto-configures a provider from the granted model list. The lowest-friction entry point for first-time users; re-running after you're already signed in idempotently re-syncs the model list. As of v4.25.0 /codingplan has been folded into /login; the standalone entry has been removed |
/resume | Open the session picker to restore any previously persisted session (messages, directory, and model state) |
/session | Start a fresh, clean session |
/bg | Send the current session to the background and open a new foreground; subcommands: /bg list, /bg <N>, /bg drop <N>, /bg help. See Background sessions |
/background <task> | Compatibility entry: start a one-shot task in a /bg slot (details) |
/rename <new-name> | Rename the current session (changes the display name in the /resume picker) |
/provider | Manage provider accounts and their models, using a vendor preset or a custom endpoint |
/model | Set the default model / provider and switch the current session; other open sessions are unchanged |
/cd | Change working directory and start a new session, writing it back as default_workdir. You can also just type cd /path (no slash prefix) |
Tools & utilities
| Command | Purpose |
|---|---|
/view · /view <filepath> | Open a read-only file viewer. With no argument, a fuzzy files-only picker opens (type to filter; a path-like query such as ~/… or ./… can open a file outside the project). With a path, it opens that file directly. Scroll with arrows / PageUp-Down / Home-End (or g/G to jump to top/bottom); Esc backs out, Ctrl+C exits |
/undo · /undo N | Roll conversation memory back to before the last turn (or turn N) and restore that prompt into the input box; rewinds memory only — does not revert files on disk |
/diff | Show the git diff of uncommitted changes in the working directory (the file list shows up to 5 rows at a time with a "more files" scroll indicator) |
/review | Code review the current changes: /review reviews uncommitted changes, /review staged the staged diff, /review <base> against a base ref |
/paste | Attach an image from the clipboard (Windows fallback for when Ctrl+V is captured by the terminal) |
/cost | Prompt, completion, and cached tokens accumulated per model in the current session. Distinct from /usage, which queries the CodingPlan gateway for your plan quota |
/context | Show this turn's context budget breakdown: system prompt, tool defs, cold-zone compaction, total messages, and context-window usage |
/compact | Compact history: summarise earlier messages to free up context budget |
/rewind | Choose an earlier prompt and roll back the conversation, code, or both; see Sessions & Undo |
/clear | Clear the current session's messages (working directory and model are kept) |
/init | Scan the working directory and create or improve the active project instruction file (.atomcode.md, AGENTS.md, or CLAUDE.md, in precedence order). Output follows the current language; an optional custom prompt file can be configured under /config. |
/background <task> | Dispatch a task to an isolated background agent (read-only-leaning tool subset) without polluting the main conversation. Useful for "go check X on the side" sort of light exploration. See Background sessions |
/worktree <subcommand> | Git worktree isolation: create a new branch with its own worktree, list existing worktrees, done squash worktree changes back to the main branch, cleanup remove finished worktrees |
/todo · /todo add <task> · /todo clear | Reprint the current todo list — derived from the session transcript (locates the most recent todowrite tool call and re-renders it), with "in-progress / done" status markers. /todo add <task> appends a task deterministically (no model round-trip); /todo clear empties the list. The list is stateless (nothing extra is written to disk); the model maintains it during long tasks and you can run this anytime to check progress |
/copy | Copy a code block from the last reply to the clipboard: /copy copies the only block, /copy N the N-th, /copy all every code block, /copy msg the whole reply as raw markdown |
/save | Export the current conversation to a markdown file: /save uses an auto-generated filename, /save <filename> a name you choose |
/issue has been removed. After /login, ask in natural language—for example, “Create an AtomGit issue for this bug.” AtomCode will select the built-in atomgit_issue tool; write actions still require approval. See Built-in Tools.
You don't have to wait for a turn to finish to check on things: /status, /diff, /cost, /usage, and /rename run even while the agent is streaming. They render as a transient panel below the input box (press Esc to dismiss) without interrupting the running turn. /usage mid-turn is also tab-switchable across its Current / Overview / Models views.
Conversation modes & thinking
| Command | Purpose |
|---|---|
/plan | Switch to Plan mode: read-only exploration. The model can call read_file / grep / list_directory and other non-writing tools, but edit_file / bash are blocked. Useful for getting alignment before action |
/build | Switch back to Build mode (the default): all tools available — read, write, execute. /plan and /build are freely interchangeable |
/goal <text> | Set a completion goal and let the agent run an autonomous loop — turn after turn — until the goal is met. /goal (no args) shows the current goal and round count; /goal clear stops it |
/loop <interval> <prompt or /command> | Repeat a prompt or slash command on a fixed interval. e.g. /loop 5m /diff runs /diff every 5 minutes; /loop 30s check the build re-sends that prompt every 30 seconds. Interval units are s/m/h, range 10s–24h |
/loop <prompt> | With no interval, enters self-paced mode: the task is handed to the model, which decides when to run the next round itself — good for "keep at this until it converges" work that doesn't map onto a fixed period |
/loop · /loop stop | /loop (no args) shows the current loop status; /loop stop (or off / clear / cancel) stops it. /loop and /goal are mutually exclusive — setting one automatically cancels the other |
/think on / off | Toggle extended thinking (for supported models — Claude / DeepSeek-R1 / GLM-4.5 / …). When on, the model surfaces its reasoning at the cost of latency and tokens |
/think budget <N> | Cap the thinking token budget (Claude family); controls reasoning length |
/effort <high|max|off> | DeepSeek reasoning-effort control — trade latency/tokens for deeper reasoning on DeepSeek models |
Persistent memory
| Command | Purpose |
|---|---|
/remember <content> | Write to project-scoped memory (default scope, bound to the current working directory) |
/remember --global <content> | Write to global memory (shared across all projects) |
/forget <keyword> | Delete every entry in global + project memory matching the keyword (case-insensitive) |
/memory | Show all active memories, grouped by [Global] / [Project] |
Full usage and best practices at Persistent Memory.
Extension ecosystem
| Command | Purpose |
|---|---|
/setup | On first run, install the bundled atomcode-automation-recommender skill into ~/.atomcode/skills/, append .atomcode/local/ to project .gitignore, and write .atomcode/setup-state.json (signals hash + atomcode version + installed list) under a project-level lock. Then invoke the recommender skill — it scans the project (languages, frameworks, hooks already in use), searches the web, and proposes additional atomcode skills to install for this codebase. Subsequent runs skip the seed install and re-invoke the skill directly. Extra text after the command is forwarded to the skill as a steering hint, e.g. /setup focus on testing. The CLI form atomcode setup --force forces a clean reinstall of seed files even when their content hash matches |
/skills | Browse loaded skills (project- and user-level). Each skill also appears as a standalone slash command in the menu — trigger with /<skill-name> |
/plugin | Open the interactive plugin manager — browse marketplaces, install/uninstall plugins, add/remove marketplaces from one screen |
/plugin marketplace add|remove|update|list | Manage marketplace registrations (add clones a git repo, remove deletes, update pulls latest, list shows all) |
/plugin install <plugin>@<marketplace> | Install a plugin from the named marketplace |
/plugin uninstall <plugin>@<marketplace> | Uninstall an installed plugin (the marketplace registration is kept) |
/plugin list | List locally installed plugins |
/plugin reload | Reload all plugins (re-scan disk, refresh skill/hook registration) |
See Skills and Plugin System for details.
Plugins can register their own slash commands. For example, the official channel plugin adds /wechat (shows the AtomCode WeChat community group QR code):
/plugin marketplace add https://atomgit.com/atomgit_atomcode/AtomCode-Channel
/plugin install weixin@atomcode-channel
MCP integration
| Command | Purpose |
|---|---|
/mcp | List successfully connected MCP servers and their status (failed servers don't show here — only as red error lines in the session area) |
/mcp tools <server> | Async-list the remote tools actually exposed by a specific MCP server (you'll be told if it times out or fails) |
/mcp reload | Re-read .mcp.json / ~/.atomcode/mcp.json and reconnect every server in the background |
Full configuration and usage at MCP Integration.
Web UI & sync
| Command | What it does |
|---|---|
/webui | Launch the browser interface and open it (binds 127.0.0.1:13457 by default — local only). The current TUI session is attached to live sync automatically |
/webui --host <addr> | Bind the server to a given address; /webui lan equals --host 0.0.0.0 (exposes it to the LAN). Pair with a 蒲公英 virtual IP for remote access — see Remote Access |
/webui stop | Stop the webui server |
/sync | Attach the current TUI to a running webui session (run /webui first). Both ends sync live in both directions; multiple browsers / terminals can watch the same session |
/sync off | Leave sync and return to a standalone session |
/app | Expose the current session to the mobile App via the official relay: a QR code is printed right in the terminal, scan it with the App to pair, then view and drive this conversation live from your phone (same source as /webui — one shared session, two-way live sync; the difference is no browser, and it goes over the relay rather than the LAN). Requires /login first |
/app stop | Stop App remote access, disconnect the relay, and return to a local session |
More in Web UI and the Remote Access guide.
Config & help
| Command | Purpose |
|---|---|
/status | Show login status, current provider, model, context budget, CodingPlan usage and reset time |
/whoami | Show the username / email of the current AtomGit-logged-in user |
/config | Show the path of ~/.atomcode/config.toml |
/reload | Hot-reload ~/.atomcode/config.toml from disk — external edits (or changes from another terminal's /login) take effect without restarting atomcode |
/proxy | Switch outbound proxy mode: follow the system proxy (default) / force a specific proxy / connect directly with no proxy. For corporate proxy networks or when you need to force a proxy or force a direct connection; the choice is written back to config |
/language | Switch UI language: auto-detect (LC_ALL / LANG), English, or Simplified Chinese. Takes effect immediately and is written back to ~/.atomcode/config.toml |
/welcome | Re-open the 3-step first-run wizard (welcome → language → setup). Non-empty sessions are confirmed with a y/N before clearing the screen. Both language and default onboarding path can be revisited here |
/logout | Clear the AtomGit OAuth token |
/upgrade | Auto-upgrade to the latest version; /upgrade rollback reverts to the previous version |
/guide | Built-in onboarding guide: /guide lists topics you can ask about (quickstart, switch model, MCP, Skills, memory, background tasks, context, keybindings, config); /guide <topic> explains it right in the chat (first run auto-installs the atomcode-skills plugin) |
/help | List every available slash command |
/keys | Show the keyboard-shortcut reference (grouped by input / history / session / modal navigation, with per-terminal compatibility notes for Shift+Enter and Alt+Enter). See Keybindings |
/quit · /exit | Exit atomcode (or hit Ctrl+C twice) |
Tips
- Autocomplete — typing
/pops up the menu immediately; use↑↓to navigate,Tab/Enterto confirm. - Fuzzy match — completion supports substring matching, e.g.
/provhits/provider. - Interrupt the model — while the model is streaming, press
Escto interrupt; you can then enter a new command or prompt. - Skills appear in the menu — once you add your own commands under Skills, they show up in the menu in the same format.
Typical workflows
First launch — one-click onboarding
> /login
✔ Logged in as alice (alice, alice@example.com)
✔ CodingPlan claimed — CodingPlan Lite · expires 2026-05-22 (29d / 30d)
✔ 3 models registered as AtomGit-* providers
✔ Default provider set to AtomGit-GLM
> hello
Check token usage before wrapping up
> refactor src/db to use a connection pool
... (AI works)
> /cost
AtomGit · deepseek-v4-flash
Prompt tokens: 7210
Completion tokens: 1132
Cached tokens: 5080 (70% hit rate)
Total tokens: 8342
Rewind and re-ask when the answer goes sideways
> add JSDoc to every function
... (the reply went off the rails)
> /undo
Rolled back to turn 3 of 3.
⚠ Only conversation memory was rewound; files on disk were not restored. Revert code manually or check /diff.
(your last prompt is back in the input box — edit and resend)
Swap the model when it underperforms
> /model
> (pick claude-opus-4-6 from the popup)
> try again — this time preserve existing comments
Next steps
- Keybindings — pair commands with keybindings to double your speed
- Sessions & Undo — full behaviour of
/resume,/undo,/compact