Development environment orchestrator for macOS
One command. All your services. Built in Rust.
Install • Features • Usage • Architecture • Development
Atlas is a terminal-first development tool that manages your entire local environment — services, databases, tunnels, and infrastructure — from a single atlas.yaml config.
Think docker-compose for your dev workflow, but native, fast, and with a beautiful TUI.
atlas devThat's it. Atlas reads your project config, starts services in dependency order, monitors health, streams logs, and gives you a polished interactive dashboard — all in your terminal.
Homebrew (recommended):
brew tap codeatlasdev/tap
brew install atlasShell installer:
curl -fsSL https://atlas.codeatlas.com.br/install.sh | shFrom source (requires Rust 1.87+):
git clone https://github.com/codeatlasdev/atlas
cd atlas
cargo build --releaseA full terminal application — not a script. Keyboard-driven with mouse support.
- Real-time service status with colored indicators
- Aggregated log viewer with per-service filtering
- Tab navigation between services (0-6, Tab)
- Health monitoring (HTTP, TCP port, process liveness)
- Toast notifications with animated spinners
- Command palette (
:key) with fuzzy search - Help modal (
?key) with contextual shortcuts - Responsive layout — adapts to terminal size
Logs are first-class. Designed for the AI-assisted development workflow.
| Key | Action | Description |
|---|---|---|
L |
Copy Logs | Last 3 minutes, formatted with timestamps and service headers |
P |
Copy for AI | Pre-formatted prompt for Claude/GPT — includes error context, surrounding lines, and a help request |
E |
Copy Errors | Only errors/warnings with service attribution |
The P shortcut generates output like:
I'm working on a development environment and encountering issues.
Here are the recent logs from my services:
Project: myapp
Services: api, web, worker
>>> [api] Error: Cannot read property 'id' of undefined
>>> [api] at UserController.get (/app/src/user.ts:42)
Can you help me understand what's going wrong and how to fix it?
Paste directly into any AI assistant. Zero effort.
For CI, scripts, and automation:
atlas dev --headlessStarts all services, streams logs to stdout with ANSI colors, and shuts down cleanly on Ctrl+C.
atlas self-update # Update to latest
atlas self-update --check # Check without installing
atlas self-update --channel beta # Switch channelsDetects your installation method (Homebrew, shell installer, or manual) and acts accordingly.
Create atlas.yaml in your project root:
name: myapp
tunnel:
enabled: true
local_port: 54320
remote_host: localhost
remote_port: 5432
ssh_host: prod-db
services:
redis:
command: docker compose up -d redis
port: 6379
critical: true
api:
command: bun run dev:api
port: 3000
health: http://localhost:3000/health
depends_on: [redis]
web:
command: bun run dev:web
port: 3001
depends_on: [api]
worker:
command: bun run dev:worker
depends_on: [redis]
infra:
compose_file: docker-compose.ymlLocal overrides (gitignored):
# atlas.local.yaml
tunnel:
enabled: false
services:
web:
port: 3002| Key | Action |
|---|---|
q |
Quit (with confirmation) |
? |
Help |
r |
Restart all services |
: |
Command palette |
Tab / Shift+Tab |
Next/prev tab |
0-6 |
Jump to tab |
j / k |
Scroll logs |
G / g |
Jump to bottom/top |
L |
Copy logs to clipboard |
P |
Copy logs as AI prompt |
E |
Copy errors only |
atlas dev # Start dev TUI
atlas dev --headless # Start without TUI
atlas dev --dir ./my-project # Specify project directory
atlas self-update # Update Atlas
atlas ping # Check daemon connection
atlas server list # List managed servers
atlas deploy run # Deploy to productionAtlas is a Rust workspace with clean separation of concerns:
atlas/
├── crates/
│ ├── atlas-core/ # Domain types, traits, zero dependencies
│ ├── atlas-tui/ # TUI application (ratatui + crossterm)
│ │ ├── config/ # atlas.yaml parser + merge
│ │ ├── runtime/ # Process lifecycle, health, tunnel, docker
│ │ ├── theme/ # Semantic color tokens
│ │ ├── event/ # Async event loop (tokio + crossterm)
│ │ └── tui/ # TEA state machine, views, widgets
│ ├── atlas-cli/ # Binary: `atlas` command
│ ├── atlas-daemon/ # Background daemon (socket server)
│ ├── atlas-db/ # SQLite persistence
│ ├── atlas-ssh/ # SSH client (session management)
│ ├── atlas-ai/ # AI provider abstraction
│ ├── atlas-server/ # Remote server management
│ ├── atlas-agent/ # AI agent lifecycle (ACP protocol)
│ ├── atlas-terminal/ # PTY session management
│ ├── atlas-memory/ # Knowledge base (vector + graph)
│ ├── atlas-plugin/ # Plugin system (TOML manifests)
│ └── atlas-mcp/ # MCP bridge binary
├── app/ # SwiftUI desktop app (macOS 14+)
├── scripts/ # Install + CI scripts
├── Formula/ # Homebrew formula
└── .github/workflows/ # CI/CD
- Single binary —
atlasdoes everything (dev, deploy, manage) - Config-driven —
atlas.yamlis the source of truth - Daemon optional —
atlas devworks standalone, daemon adds remote features - TEA pattern — Elm Architecture for testable, predictable UI state
- Async-first — tokio throughout, channels for communication
- Zero-cost DX — instant startup, no runtime dependencies
| Component | Technology |
|---|---|
| Language | Rust (edition 2024, 1.87+) |
| TUI | ratatui 0.30 + crossterm 0.28 |
| Async | tokio (full features) |
| Config | serde_yaml |
| Desktop | SwiftUI (macOS 14+, Apple Silicon) |
| IPC | Unix Domain Socket + JSON-RPC |
| Database | SQLite WAL (sqlx) |
| AI | reqwest → Claude/GPT/Ollama |
| SSH | russh (pure Rust, async) |
| Memory | redb (embedded key-value) |
- macOS 14+ (Sonoma) or later
- Rust 1.87+ (via
rustup, handled byrust-toolchain.toml) - Xcode 15+ (for SwiftUI desktop app)
# Everything
cargo build
# Just the CLI + TUI
cargo build -p atlas-cli -p atlas-tui
# Run tests
cargo test -p atlas-tui
# Run with clippy
cargo clippy -p atlas-tui -- -D warnings74 tests (atlas-tui) + 5 tests (atlas-cli) = 79 total
config/ 9 tests — parser, merge, find_root, defaults
runtime/ 18 tests — health, lock, manager, tunnel, docker, deps, logs
theme/ 2 tests — token coverage
event/ 3 tests — channel, tick, debug
tui/app 19 tests — TEA messages, layers, scroll, palette, mouse
tui/widgets 3 tests — command palette, spinner
tui/views 2 tests — quit modal rendering
headless 1 test — config requirement
cli/self_update 5 tests — platform, install method, version compare
Atlas is in active development. The CLI/TUI is functional and ready for daily use. The desktop app and remote features (deploy, AI agents) are in progress.
| Component | Status |
|---|---|
| CLI + TUI | ✅ Production-ready |
| Config system | ✅ Complete |
| Process management | ✅ Complete |
| Health monitoring | ✅ Complete |
| Log management | ✅ Complete |
| Self-update | ✅ Complete |
| SSH tunnel | ✅ Complete |
| Headless mode | ✅ Complete |
| Desktop app | 🚧 In progress |
| Remote deploy | 🚧 In progress |
| AI agents | 🚧 In progress |
MIT