Concepts

Project#

A directory with an atlas.yaml. The file lists the services to run and everything around them. atlas.local.yaml next to it overrides a subset per machine. Atlas keeps its runtime files in the project’s .logs/ directory (add it to .gitignore).

Service#

One thing the stack runs. A service with a command is spawned by Atlas (sh -c, in its own session, stdin /dev/null). A service without a command is externally managed (typically a docker container from your compose file): Atlas never spawns it and only watches its port.

A service is always in one of these states:

StateMeaning
startingspawned, not ready yet
runningready: port or health probe passed, or its ready_log matched
failedexited abnormally, a dependency failed, or the restart budget is spent
stoppednot running; also a finished one-shot
disabledstopped by you, or left out of this run by atlas dev SERVICE…
suspendedpaused by an action’s pause_services

Services start when every depends_on condition holds (started, healthy, completed_successfully, log_ready) and restart according to their restart policy. Details in Runtime.

Profile#

A named group of services (profiles: in atlas.yaml) you start with atlas dev --profile backend. The selection always includes the transitive dependencies.

Action#

A command bound to a key (actions:), for the things you do next to the stack: reset the database, run the checks, launch an iOS simulator. An action can confirm first, pause_services while it runs, open an interactive session, or target a mobile platform. Actions show up in the TUI help, the command palette, the desktop Actions menu and over MCP, where confirm becomes a gate that needs confirmed: true.

Runner, TUI and attach#

The runner is the engine that owns the services: scheduler, health checks, control socket, status heartbeat and disk logs. A TUI can own it (plain atlas dev), or the runner can live on its own as a daemon (atlas dev --detach, or --headless in the foreground). A TUI is then just a client that attaches and detaches without touching the services. The desktop app, the TUI and MCP all talk to the same runner through .logs/atlas.sock.

atlas dev --detach   start the runner and return
atlas dev            attach a TUI (D detaches; services keep running)
atlas down           stop everything gracefully

Atlas Desktop vocabulary#

Project. A main git checkout you added to the app. Stored in ~/.atlas/desktop/projects.json.

Space. The app’s view of a project. It keeps its own worktrees, tabs, panes and docks, and has its own accent color so you always know which project you are in. Move between spaces with ⌥⌘← / ⌥⌘→ or ⌃1…⌃9.

Worktree. A git worktree of the project, created by Atlas under ~/.atlas/worktrees/<repo>/<name> on its own branch. One worktree is one task: it has its own terminals, agent sessions, diff and (optionally) its own copy of the stack. Each gets a port offset (100, 200, …) so its services run next to the main checkout’s without port clashes (ATLAS_PORT_OFFSET).

Panel. The first tab of every worktree: stack health, live CPU and memory per service, the setup strip and service cards.

Agent. A coding agent CLI (omp, Claude Code, Codex) running in a worktree terminal. Hooks report its state to the app: working, needs you, done.

Dock. A side or bottom region around the panes: the left dock holds the explorer, search and source control; the right dock holds agent history and listening ports; the bottom dock is a terminal tab group.

hostd#

atlas hostd is a per-user daemon that Atlas Desktop starts. It owns the PTYs, one-shot command execution, file access and terminal scrollback, which is why terminals and agents keep running when you quit, crash or update the app. It listens on ~/.atlas/hostd.sock (token in ~/.atlas/hostd.token) and can run on an SSH host too, so a remote worktree behaves like a local one. See Architecture.

Skill#

Instructions for AI agents, compiled into the atlas binary so they always match the version you run. atlas setup or atlas install copies them to ~/.agents/skills/ (and to ~/.claude/skills/ for Claude Code). The skills are atlas (the dev environment), atlas-desktop (driving the app with atlas wt|term|browser|file) and atlas-install.

Where Atlas keeps things#

WhereWhat
<project>/.logs/per-service logs, status file, control socket, locks. See Files in .logs/
~/.atlas/bin/atlasthe installed CLI
~/.atlas/desktop/desktop settings (settings.json), projects, workspace layout, themes
~/.atlas/worktrees/worktrees created by the desktop app
~/.atlas/hostd.*, ~/.atlas/hostd/the terminal host: socket, token, pid, log, scrollback
~/.atlas/desktop.sockcontrol socket of the running desktop app (atlas wt, atlas term…)
~/.atlas/omp-plugin/the omp plugin written by atlas setup omp
~/.agents/skills/bundled skills for omp and Codex