Axion is an open-source AI coding agent ecosystem built by Axion Labs. It includes a terminal CLI, a Chrome extension, a web UI, and an IDE integration — all sharing the same models, tools, and memory.
v2.0 — the terminal UI is a modern, cell-rendered TUI (powered by OpenTUI) with tabs, mouse support, inline diff review,
@filementions, terminal charts, and crash-safe session restore. It runs from source (no build step).
The deployed public website is maintained separately in Ravikxx/Axion-Website.
| Component | Description |
|---|---|
| CLI | Modern terminal agent — tabs, mouse, inline diff review, @file mentions, charts; reads, writes, and runs code in any directory |
| Chrome Extension | Browser sidebar — ask questions about pages, automate the web |
| Web UI | Browser-based chat with the same agent (/web) |
| MCP Servers | Connect Blender, GitHub, Notion, Slack, and more |
| OAuth | Connect GitHub and Google Drive/Calendar with /oauth |
| Scheduled Tasks | Run AI tasks on a schedule with /schedule |
| Discord Bot | Chat with the agent via Discord DMs (/discord start) |
| Dataset Collection | Contribute sessions to improve future models (/contribute) |
| Plugins | Extend the agent with browser, Docker, GitHub, and database tools (/plugin) |
| Axion Vision | Free image understanding & OCR endpoint — read text in screenshots, analyse images |
- Node.js v18+ (the Bun runtime the TUI needs is installed automatically as a dependency — no separate install)
curl -fsSL https://axion.amplifiedsmp.org/install.sh | shOr directly via npm:
npm install -g @axion-labs-ai/quark-cliOr via Homebrew:
brew tap ravikxx/axion
brew install axionThen run:
axionThat's it. No cloning, no building — just install and run.
git clone https://github.com/AxionLabsAI/axion.git
cd axion
npm install
npm link # the CLI runs from source — no build stepRun axion, then set your API key inside the chat:
/api claude YOUR_ANTHROPIC_KEY
Or use a free model with no key required:
/model groq ← Llama 3.3 70B, free
/model gemini ← Gemini 2.0 Flash, generous free tier
Computer-use tools (screenshots, mouse, keyboard) require:
# Debian/Ubuntu
sudo apt install xdotool scrot xclip
# Arch
sudo pacman -S xdotool scrot xclipxdotool is the only hard requirement — scrot is for screenshots, xclip is a fallback for text input.
brew install cliclick # for scroll supportGrant Accessibility and Screen Recording permissions to Terminal (or iTerm) in System Settings → Privacy & Security.
Set keys before running, or use /api inside the chat:
# Option 1 — environment variables
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
export GEMINI_API_KEY=...
export GROQ_API_KEY=gsk_...
export MISTRAL_API_KEY=...
# Option 2 — .env file (place in ~/.axion/.env or your project root)
# Copy .env.example to get started
cp .env.example ~/.axion/.envOr set them live inside the CLI:
/api claude sk-ant-...
/api gpt sk-...
/api gemini AI...
| Alias | Provider | Notes |
|---|---|---|
lumen |
Axion Labs | Lumen 1.2.5 — live. Safety-retrained 1.3 in progress; see safety report. |
veil |
Axion Labs | No key required — free but slow (up to 100s) |
openrouter / or |
OpenRouter | 200+ models via one key |
fable |
Anthropic | claude-fable-5 |
claude |
Anthropic | claude-sonnet-4-6 |
claude-opus |
Anthropic | claude-opus-4-8 |
claude-haiku |
Anthropic | claude-haiku-4-5 |
gpt |
OpenAI | gpt-4o |
gpt-mini |
OpenAI | gpt-4o-mini |
gemini |
gemini-2.0-flash | |
gemini-2.5-pro |
gemini-2.5-pro | |
groq |
Groq | llama-3.3-70b |
mistral |
Mistral | mistral-large |
glm / glm-5.2 |
Z.ai | GLM-5.2, 753B, beats GPT-5.5 on coding. Requires Z.ai key (/api glm) |
ollama |
Local | Requires Ollama running |
Switch models anytime:
/model veil
/model claude
/model gpt
/model gemini-2.5-pro
/model ollama
Any OpenAI-compatible API works — including OpenRouter, LM Studio, Together AI, and self-hosted models:
/endpoint openrouter https://openrouter.ai/api/v1 meta-llama/llama-3.3-70b-instruct sk-or-...
/endpoint lmstudio http://localhost:1234/v1 lmstudio-community/meta-llama-3-8b
/endpoint together https://api.together.xyz/v1 mistralai/Mixtral-8x7B-Instruct-v0.1 sk-...
Format: /endpoint <alias> <base-url> <model-id> [api-key]
Custom endpoints are saved and show up in /models.
| Mode | Behavior |
|---|---|
ask |
Confirms every tool call before running |
plan |
Shows a plan first, then confirms |
auto / bypass |
Runs everything without asking |
Switch with /mode auto or press Ctrl+P to cycle.
/help show all commands
/model <name|id> switch model (alias or raw ID)
/mode <name> switch mode: ask · plan · auto (Ctrl+P to cycle)
/models list all available models + custom endpoints
/theme [name] accent color: ember · violet · ocean · jade · rose · gold
/api <model> <key> set API key (saved)
/endpoint <name> <url> [model] [key] add a custom OpenAI-compatible endpoint
/endpoint list saved endpoints
/thinking [on|off|<tokens>] toggle extended thinking
/adviser [model|auto|off] set a second model that helps when the agent gets stuck
/cost show session token usage and estimated cost
# Running things
/run <cmd> run a shell command and feed output to the agent
!<cmd> shorthand for /run e.g. !git status
/goal <description> work autonomously until goal is met
/goal show or cancel current goal
/retry re-run the last message
/btw <question> quick side question without affecting chat history
/review code review of current git diff (structured feedback)
/pr [context] draft a PR title+body from recent commits
# Context & memory
/remember <text> save a persistent note (injected into every session)
/remember list saved notes
/forget <index> remove a note by number
/system [text] set/clear extra system prompt instructions for this session
/include <file> pin a file into context for the session (tab-completes)
/include list pinned files
/include remove <file> unpin a file
/include clear unpin all files
# Chat history
/save <name> save current chat
/resume [name] resume a saved chat (no name = list all)
/remove-chat <name> delete a saved chat
/search-chats <query> search across all saved chats
/history <query> search message history
/export <filename> save chat as markdown
/compact summarize & compress history to free context
/clear clear history
# Comparing models
/compare <prompt> run prompt through saved/default models side by side
/compare <m1,m2,...> <prompt> override models for this run
/compare-models show saved compare model list
/compare-models <m1,m2,...> save default models for /compare
/compare-models reset restore built-in defaults (claude · gpt · gemini)
# Undo & checkpoints
/undo restore last overwritten/deleted file
/rewind [list|<n>] undo the last n turns' file changes (checkpoints)
# Computer use
/computer [on|off] toggle computer use / screen control (alias: /cu)
/vision [model] set/show vision model for computer use
/ss [question] screenshot + describe the screen (quick, no agent loop)
/macro record <name> start recording a macro (computer use actions)
/macro stop save the recorded macro
/macro play <name> replay a saved macro
/macro list list all saved macros
/macro delete <name> delete a saved macro
# Image generation
/img-gen <prompt> generate an image (saved to ~/.axion/images/)
/img-gen-model [model] set/show image model (dall-e-3, dall-e-2, gpt-image-1)
# Skills & automation
/skills list skills (auto-activate when trigger words appear)
/skill-generator <name> <txt> AI-generates a skill .md in ~/.axion/skills/
/skill-delete <name> delete a skill
/watch start watch-and-learn (saves preferences from your messages)
/watch stop stop + save learned preferences to ~/.axion/learned.md
/watch show view current learned preferences
/watch clear delete all learned preferences
/permissions [clear] list/reset always-allowed tools (press "a" on confirms)
# Dataset contribution
/contribute share this session as training data (auto-prompted)
/contribute skip dismiss for this session
/contribute optout [off] permanently opt out (or re-enable)
# Web UI
/web [port] open web UI in browser (default port 3000)
/web stop stop web server
# MCP servers
/mcp show connected MCP servers + tool counts
/mcp browse browse MCP marketplace (curated servers)
/mcp search <query> search marketplace by keyword
/mcp install <id> install a server from the marketplace
/mcp add <name> <cmd> [args] connect a custom MCP server (saved)
/mcp enable <name> enable a disabled server
/mcp disable <name> pause a server (keeps config)
/mcp remove <name> disconnect + delete config
/mcp tools [name] list tools from connected servers
/mcp reload restart all servers
# Blender
/blender setup show Blender add-on install instructions
/blender connect connect Blender MCP server to Axion
# OAuth
/oauth connect <service> connect GitHub · Google · Notion · Slack
/oauth list show connected services
/oauth revoke <service> disconnect
# Scheduled tasks
/schedule list scheduled tasks
/schedule add <name> "<expr>" <p> add a scheduled task
/schedule run <name> run a task now
/schedule remove <name> delete a task
/schedule enable/disable <name> toggle a task
/schedule results [name] show result files
# Plugins
/plugin list available plugins + status
/plugin enable <name> enable a plugin
/plugin disable <name> disable a plugin
/plugin tools <name> show tools a plugin provides
/plugin install <name> install a plugin
# Discord
/discord token <TOKEN> save bot token
/discord start connect bot (auto-reconnects on next launch)
/discord stop disconnect
/discord status show connection info
/exit quit
Keyboard & mouse: Ctrl+T new tab · Ctrl+W close tab · Shift+Tab switch tab · Ctrl+1-9 jump to tab · Ctrl+R expand/collapse the last tool or thinking block · Esc interrupt · Ctrl+C twice to quit. Type @ to mention a file; click tabs, the +/✕ buttons, suggestions, and the copy/edit/retry actions that appear when you hover a message.
- AXION.md — put persistent project instructions in
./AXION.md,./.axion/AXION.md, or~/.axion/AXION.md; they're loaded into every session's system prompt. - @file mentions — type
@src/file.jsin any message to pin that file into context (tab-completes paths). - Custom slash commands — drop
.mdfiles in~/.axion/commands/or./.axion/commands/;review-pr.mdbecomes/review-pr, and$ARGUMENTSin the body is replaced with whatever follows the command. - Skills —
/skill-generator minecraft remember X, Y, Z whenever minecraft comes uphas the AI write~/.axion/skills/minecraft.md(frontmatter: name, description, triggers). The skill auto-injects into the system prompt whenever a trigger word appears in your message./skillslists them,/skill-delete <name>removes one, or edit the.mddirectly. - Per-project settings — drop a
.axion-settings.jsonin your project root to override global defaults for that project:{ "model": "claude", "mode": "auto", "theme": "ocean", "systemPrompt": "...", "thinking": true }. Takes priority over.axionrc. - Message queueing — type while the agent is working; messages queue and send when the turn finishes.
- Background tasks — the agent can start dev servers/watchers with
run_command background=trueand poll them withcheck_task.
/schedule add morning-report "daily 09:00" Summarize my GitHub notifications
/schedule add weekly-review "weekly mon 09:00" Review what I worked on this week
/schedule add price-check "every 30m" Check Bitcoin price and alert if > 100k
Results are saved as markdown files in ~/.axion/schedule-results/.
Connect services to give the agent access to them:
/oauth connect github → device flow, auto-adds GitHub MCP server
/oauth connect google → opens browser, connects Drive + Calendar
/oauth connect notion → paste integration token
/oauth connect slack → paste bot token
To enable OAuth, register your own apps and add credentials to ~/.axion/.env:
AXION_GITHUB_CLIENT_ID=...
AXION_GITHUB_CLIENT_SECRET=...
AXION_GOOGLE_CLIENT_ID=...
AXION_GOOGLE_CLIENT_SECRET=...
Help improve future Axion models by sharing interesting sessions. Axion automatically suggests contributing after complex or frustrating conversations.
/contribute # share this session
/contribute skip # not now
/contribute optout # never ask again (run with "off" to re-enable)
Sessions are sent to the Axion Labs collector automatically — no setup needed. If you're offline, they're saved locally in ~/.axion/donations/ and uploaded the next time Axion starts with a connection.
Run a persistent local collector to capture sessions before they're uploaded:
axion-collect # saves to ~/.axion/dataset/ on port 47832
axion-collect --port 12345 # custom port
axion-collect --out ~/data # custom output directoryAxion checks for the daemon on startup and routes sessions to it first when running.
Chat with the Axion agent directly from Discord DMs.
- Create a bot at discord.com/developers
- Enable Message Content Intent under Bot → Privileged Gateway Intents
- Invite the bot to your server (or DM it directly)
- Save the token:
/discord token <BOT_TOKEN> - Connect:
/discord start
- DMs sent to the bot appear in the CLI labeled
[Discord: username] - The full agent responds — file access, tools, confirmations, MCP servers
- The response is sent back to Discord automatically (long replies are split)
- If the agent needs permission to run a tool, it DMs you a y/n prompt
- The bot shows a typing indicator while processing
| Command | Description |
|---|---|
/discord token <TOKEN> |
Save bot token |
/discord start |
Connect (auto-reconnects on next launch) |
/discord stop |
Disconnect (disables auto-reconnect) |
/discord status |
Show connection info |
axion-discord runs a persistent bot without the TUI — useful for a server:
axion-discord
axion-discord --model claudeThe Chrome extension is maintained in its own repository: Ravikxx/Axion-Chrome-Extension.
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Clone or download the extension repository and select its root folder
- Click the Axion icon or press
Alt+Shift+A
The extension sidebar lets you ask about the current page, run browser automation, take screenshots, and chat using any supported model. To import the CLI's saved provider configuration into the extension, start the local web surface and paste its short-lived import URL and token into the extension settings:
/web
Axion Desktop can also pair with the extension for browser tools through the authenticated loopback connection shown in Desktop settings.
/web # opens http://localhost:3000
/web 8080 # custom port
/web stop # stop the server
The web UI shares the same agent session as the CLI.
Axion includes a built-in MCP marketplace with 13 curated servers:
/mcp browse # see all available servers
/mcp search database # filter by keyword
/mcp install github # install by ID
/mcp install puppeteer
/mcp install postgres postgresql://user:pass@localhost/db
Or connect any MCP server manually:
/mcp add github npx -y @modelcontextprotocol/server-github
/mcp add notion npx -y @modelcontextprotocol/server-notion
/mcp add blender /blender connect
Config is saved to ~/.axion/mcp.json.
Available marketplace IDs: github, filesystem, fetch, postgres, sqlite, notion, slack, puppeteer, memory, brave-search, google-maps, sequential-thinking, everything
A free image understanding & OCR endpoint, hosted separately from Lumen.
- Powered by GLM-OCR (Z.ai open-weights model, purpose-built for OCR)
- Reads text in screenshots, error messages, UI mockups, diagrams
- OpenAI-compatible
/v1/chat/completions— send images as base64image_urlcontent blocks - No API key required
Deploy from axion-vision-space/app.py to a HuggingFace Space.
The CLI runs from source (no build step) — just relink:
npm link # (or: npm install -g .) — update the global `axion`axion/
├── src/
│ ├── agent/ # Agent loop, tools, models, MCP, OAuth APIs
│ ├── tui/ # Terminal UI (OpenTUI + React, runs under Bun)
│ │ ├── launch.js # `axion` entry — re-execs the TUI under Bun, or falls back
│ │ ├── main.jsx # OpenTUI entry / arg parsing
│ │ └── fallback.js # plain-Node readline UI (no Bun / piped input)
│ ├── ui/ # Framework-free shared logic (markdown, charts, commands…)
│ ├── web/ # Web server + React web client
│ ├── oauth/ # OAuth providers + flow
│ ├── config.js # Models, providers, API keys
│ ├── persist.js # Local storage (~/.axion/)
│ ├── scheduler.js # Scheduled tasks
│ ├── discord-daemon.js # axion-discord standalone bot
│ └── collect-daemon.js # axion-collect local dataset daemon
├── collect-worker/ # Cloudflare Worker for remote session collection
├── mcp-servers/ # Bundled MCP servers (Blender)
└── assets/ # Repository documentation assets
Type any command in the CLI. All commands start with /. Tab completes the command name; the suggestion box shows up to 6 matches as you type.
| Command | Description |
|---|---|
/model <name> |
Switch model (e.g. claude, gpt, lumen, gemini, groq) |
/models |
List all available models and custom endpoints |
/api <provider> <key> |
Set an API key (claude, gpt, groq, mistral, gemini, glm, openrouter) |
/axion-key <key> |
Save your Axion API key for Lumen access |
/axion-key remove |
Clear your Axion API key |
/endpoint <name> <url> [model] [key] |
Add a custom OpenAI-compatible endpoint |
/thinking [on|off|<tokens>] |
Toggle extended thinking (Claude only) |
| Command | Description |
|---|---|
/mode <name> |
Switch agent mode: ask, plan, bypass |
/adviser [model|auto|off] |
Set or disable the adviser model |
/system [text|clear] |
Set extra system-level instructions |
/include <file> |
Pin a file into context (no args = list pinned) |
/btw <question> |
Quick one-off question without breaking flow |
/retry |
Re-run the last message |
/compare [m1,m2,...] <prompt> |
Compare two or more models side by side |
/compare-models [m1,m2,...] |
Get or set the default models for /compare |
/review |
Code review of the current git diff |
/goal <description> |
Loop until the agent meets a condition |
/compact |
Summarise and compress history to save tokens |
/cost |
Show session token usage and estimated cost |
| Command | Description |
|---|---|
/run <cmd> |
Run a shell command and feed output to the agent |
/include <file> |
Pin a file into every message |
/undo |
Restore the last overwritten or deleted file |
/rewind [list|<n>] |
Undo the last n turns of file changes |
/export <filename> |
Save the current chat as a markdown file |
/save <name> |
Save the current chat session |
/resume <name> |
Resume a saved chat (no args = list all) |
/search-chats <query> |
Search across all saved chats |
/remove-chat <name> |
Delete a saved chat |
/history <query> |
Search message history |
/copy |
Copy the last AI response to the clipboard |
/copy-block <n> |
Copy the Nth code block from the last response |
| Command | Description |
|---|---|
/skills |
List all skills (auto-activate on their trigger phrases) |
/skill <name> <instructions> |
Create a skill from a description |
/skill-generator <name> <instructions> |
AI-generate a skill .md file |
/skill-delete <name> |
Delete a skill |
/macro record|stop|play|list|delete |
Record and replay sequences of messages |
/watch start|stop|show|clear |
Watch-and-learn — build preferences from observed behaviour |
/schedule list|add|run|remove|enable|disable|results |
Manage scheduled AI tasks |
| Command | Description |
|---|---|
/remember [text] |
Save a persistent note (no args = list all) |
/forget <number> |
Remove a saved note by index |
| Command | Description |
|---|---|
/computer [on|off] |
Toggle screen control (alias: /cu) |
/cu [on|off] |
Shortcut for /computer |
/ss [question] |
Take a screenshot and describe the screen |
/vision <model> |
Set the vision model for computer use |
/img-gen <prompt> |
Generate an image via OpenAI |
/img-gen-model [model] |
Set or show the image generation model |
/voice |
Record voice input — transcribed by Whisper |
| Command | Description |
|---|---|
/oauth connect|list|revoke |
Link GitHub, Google, Notion, or Slack |
/discord token|start|stop|status |
Discord bot — run the agent via DM |
/web [port|stop] |
Open or stop the web UI |
/blender setup|connect |
Set up the Blender MCP integration |
/mcp browse|search|install|toggle|enable|disable|remove|tools|reload |
MCP marketplace |
/plugin ... |
Browser, Docker, GitHub, and database plugins |
| Command | Description |
|---|---|
/pr [context] |
Draft a PR title and body from recent commits |
/contribute [skip|optout] |
Share session as training data |
/permissions [clear] |
List or reset always-allowed tools |
/theme [name] |
Switch accent colour (no args = list) |
/help |
Show all commands |
/clear |
Clear history |
/exit |
Quit |
MIT — made by Axion Labs