Observed since 20 Oct, 20:53 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Aether AI Agent — A professional-grade AI coding assistant for your terminal.
A professional-grade AI coding assistant that runs directly in your terminal. Aether reads your code, writes files with surgical precision, runs commands safely, and helps you build faster — all from a beautifully designed CLI.
asyncio and AsyncOpenAI for concurrent processing, parallel tool runs, and streaming.edit_file tool makes precise search-and-replace edits with color-coded diff previews, instead of rewriting entire files.~/.aether_sessions/aether.db), auto-migrating older JSON sessions..aether_rules or .cursorrules from the current working directory.@-mention files with Tab completion that respects .gitignore and supports directory traversal.Aether has 9 built-in tools the AI can use:
| Tool | Description |
|---|---|
read_file | Read file contents before making changes |
write_file | Create new files (with preview) |
edit_file | Surgical search-and-replace on existing files (with diff preview) |
run_command | Execute shell commands (supports background execution; safe commands auto-run, dangerous ones require approval) |
check_background_task | Check the status and read recent output of a command running in the background |
kill_background_task | Kill a running background task |
list_directory | List files/folders with sizes, respecting .gitignore |
grep_search | Search for text or regex patterns across the codebase |
find_files | Find files by glob pattern (e.g., *.py, Dockerfile) |
| Command | Description |
|---|---|
/help | Show all available commands |
/model [name] | View or switch the active AI model |
/clear | Clear conversation history |
/drop | Drop attached files/URLs/commands from history to save tokens |
/save [name] | Save current conversation to SQLite database |
/load [name] | Load a previously saved conversation |
/checkpoint [name] | Save a conversation snapshot to memory |
/restore [name] | Restore a saved conversation checkpoint |
/usage | Show token usage, estimated session cost (USD), and statistics |
/commit | Auto-generate a commit message for staged/unstaged changes and commit them |
/compact | Summarize older messages using AI (fallback to text-summarization) to save tokens |
/undo | Undo the last file modification |
/retry | Retry the last message |
/copy | Copy last AI response to clipboard |
/export [file] | Export conversation to a Markdown file |
/config | View current configuration |
/mcp | View configured MCP servers and their connection status |
ls, cat, git status, etc.) auto-execute. Destructive commands (rm, sudo, etc.) always require confirmation.--yolo Mode — Auto-approve all operations for power users./undo to restore.\ to continue on the next line./save and /load to manage.~/.aether_logs/aether.log plus verbose console debugging logs via --verbose.openai — OpenAI-compatible API clientpython-dotenv — Environment variable managementrich — Rich text, Markdown rendering, panels, tables, and live displayprompt_toolkit — Interactive command line with autocompletepipx install aether-ai-cli
# Or:
pip install aether-ai-cli
npm install -g aether-ai-cli
brew tap irtaza302/aether-agent
brew install aether
git clone https://github.com/irtaza302/aether-agent.git
cd aether-agent
pip install -r requirements.txt
python aether.py
aether
On first launch, you'll be prompted for your OpenRouter API key. It's saved securely to ~/.aether_config.json.
| Flag | Description |
|---|---|
--version | Show version |
--model <name> | Override the default model for this session |
--reset-key | Clear and re-enter your API key |
--set-base-url <url> | Set custom API base URL (e.g., http://localhost:11434/v1 for Ollama) |
--yolo | Auto-approve all file writes and command executions |
--verbose | Enable verbose logging output to the console |
@)Type @ followed by a filename, directory, web URL, or command to give Aether context. Autocomplete filters out .gitignored files:
@aether.py attaches the file contents.@tests/ generates and attaches a visual directory tree respecting .gitignore.@https://docs.python.org/... fetches the webpage, converts it to markdown, and attaches it.@cmd:"pytest" or @cmd:ls securely runs the command in the background and injects its stdout and stderr directly into the prompt.👤 You
❯ Can you refactor @aether.py to use async?
👤 You
❯ Explain this output: @cmd:"npm run build"
End a line with \ to continue typing on the next line:
👤 You
❯ Write a function that \
⋮ takes a list of numbers \
⋮ and returns the sorted unique values
Aether stores its config in ~/.aether_config.json:
{
"OPENROUTER_API_KEY": "sk-or-...",
"API_BASE_URL": "https://openrouter.ai/api/v1",
"DEFAULT_MODEL": "anthropic/claude-sonnet-4"
}
Aether supports integrating with external Model Context Protocol (MCP) servers to extend its capabilities (e.g. connecting to local databases, searching the web, or accessing custom APIs).
To configure MCP servers, add an "mcp_servers" block to your ~/.aether_config.json:
{
"mcp_servers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "~/test.db"]
},
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
When you start Aether, it will automatically connect to these servers and make their tools available to the AI.
Sessions are saved in a SQLite database at ~/.aether_sessions/aether.db, and file backups are placed in ~/.aether_backups/.
Aether supports loading custom, project-specific rules files (such as .aether_rules or .cursorrules) from the root of your project directory.
When Aether starts, it checks for these files in the current working directory in the following order:
.aether_rules.cursorrulesIf one is found, Aether automatically appends its contents to the system prompt. This allows you to enforce codebase-specific styling guidelines, coding standards, or project rules without editing Aether's global configuration.
For long-running processes (e.g., running test suites, starting local dev servers, or building bundles), you can run commands in the background asynchronously:
run_command tool supports a boolean background parameter. If set to true, the tool immediately returns a unique task_id (e.g., bg_a1b2c3d4).check_background_task tool.kill_background_task tool.This allows you to continue discussing other topics or refactoring files with Aether while your tests or builds run in parallel.
Aether dynamically estimates session costs in USD for known models based on token usage:
/usage command).You can save and restore conversation snapshots at any point during your session:
/checkpoint [name]: Save the current conversation messages history as a named snapshot in memory./restore [name]: Revert the conversation history to the specified checkpoint. If run without a name, it lists all currently active checkpoints.This is extremely useful when experimenting with different implementation approaches or when recovering from an unintended direction.
All internal activities, tool calls, and API events are written to a rotating file logger:
~/.aether_logs/aether.log.--verbose flag to mirror log output directly to the console stderr stream.Use the included publish.sh script to build and publish across all platforms (PyPI, NPM, and PyInstaller binaries).
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 2.2.0 | 5 Jun 2026 | 11 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 20:53 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:fcc6ca2b5a136a8524ee5354be93f2c3a3f4c1bc3f964e88b8b17744a41c1399