Skip to main content

atlas-cli

The Atlas method made executable: create an Atlas and keep it in order while several people and agents work in it.

What Atlas is: a Claude-anchored, spec-driven way to keep the context of real software projects — one folder per project, its sources linked by symlink, so any agent opens it cold and knows what it is, where each source lives, where the work stands and how it gets closed.

1. Prerequisites (macOS + Windows)

Windows users: run everything below in Git Bash (installed with Git for Windows), not PowerShell or cmd: the Atlas hooks are bash scripts, and Claude Code runs them through Git Bash. Install tools with winget in PowerShell, then reopen Git Bash.

Tool What it's for macOS Windows (PowerShell, then reopen Git Bash)
Git (+ Git Bash) Sources and shared Atlases are git repos; on Windows, Git Bash runs the hooks. brew install git winget install Git.Git
jq The hooks read and write JSON with it. Without it, they stay silent and the coding-rules gate lets every edit through. brew install jq winget install jqlang.jq
uv Installs the atlas CLI with its own Python. brew install uv winget install astral-sh.uv
Claude Code The anchor agent. see claude.com/claude-code see claude.com/claude-code

Windows only — allow symlinks: Settings → Privacy & security → For developers → turn Developer Mode ON, so atlas link can create symlinks without admin rights.

Check:

git --version && jq --version && uv --version && claude --version

2. Install

uv tool install paranoid-atlas-cli

The command is atlas; atlas --version confirms it. If the shell can't find it, run uv tool update-shell and open a new terminal. Upgrade later with uv tool install --reinstall paranoid-atlas-cli.

3. Install the machinery for Claude Code

atlas setup claude

It installs the hooks, the /atlas-init and /atlas-sync commands and the workspace-baseline skill into ~/.claude (or CLAUDE_CONFIG_DIR when set), wires the hooks into settings.json after any hook already there, without touching anything else, and creates atlas-source pointing at the official site when there is none. Run it again after every upgrade; it only changes what differs.

Where the framework comes from: atlas-source holds one line — a URL (the official site, or a local copy of it served on http://localhost:8088) or the path of a local clone of the framework repo. A clone serves the method/*.md pages only — its index is method/README.md; the llms.txt index the agent starts from is generated by the site. To change it:

printf '%s\n' "http://localhost:8088" > "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/atlas-source"

With CLAUDE_CONFIG_DIR set, every ~/.claude/… path in the machinery lives under that folder instead.

Cursor reads Claude Code's configuration from ~/.claude: once this step is done, it gets the hooks, the commands and the skill — don't copy them into ~/.cursor/. The one thing to add on Cursor's side is the MCP server behind an Atlas's coding-rules plugin, if it has one, in ~/.cursor/mcp.json.

The coding-rules gate. In an Atlas that declares the coding-rules plugin, a hook blocks the first code edit of each Claude Code session until the declared source has been consulted. If the source can't be reached, start Claude Code with ATLAS_CODING_RULES_GATE=off to let edits through.

4. Use it

  • Create an Atlas: in a new folder, atlas init, then atlas link <name> <path> for each source and atlas doctor to check them — or /atlas-init in Claude Code, which does the same with you.
  • Join a shared Atlas: clone it, run atlas doctor inside it and follow what it says.
  • Older Atlas: atlas migrate shows the plan to bring it to the current model; atlas migrate --apply applies it.
  • Day to day: atlas status says where things stand; atlas orient prints what an agent needs at session start — stores, cadence, coding rules, state — and is the entry point for any workbench or editor (Claude Code's session hook just calls it); /atlas-sync is the checkpoint; atlas unlink <name> drops a source the Atlas no longer uses; atlas ui opens a local, read-only page on the Atlas — doctor made plain, the SPECs with search, stats, rules and machinery.

How an Atlas works — its files, SPECs, cadence and sharing — is the method: creating an Atlas and sharing one. atlas --help lists every command.

Troubleshooting

Symptom Fix
atlas: command not found uv tool update-shell, then a new terminal.
atlas-fetch: configure …/atlas-source Re-run atlas setup claude, or write a URL or clone path into that file.
jq: command not found Install jq (step 1); on Windows, reopen Git Bash afterwards.
Hooks do nothing on Windows Not in Git Bash, or Git for Windows isn't installed (step 1).
atlas link can't create the symlink (Windows) Turn Developer Mode on (step 1).
The site doesn't answer Serve the framework locally and point atlas-source at it (step 3).
Sources don't show in the editor's Source Control Check .vscode/settings.json has git.autoRepositoryDetection: true (Cursor defaults to openEditors, which ignores git.scanRepositories) and reload the window. To see what the editor does, set the Git log level to Trace (Developer: Set Log Level), reload, and read the Git output log: its doInitialScan line prints the effective autoRepositoryDetection.

Develop

uv sync
uv run atlas --version
uv run pytest

Release

Bump version in pyproject.toml, commit, then push a matching tag (v0.1.1 for 0.1.1): the Publish paranoid-atlas-cli to PyPI workflow builds and publishes it. A tag that doesn't match the version fails the workflow.

Metadata

Release files for paranoid-atlas-cli 0.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for paranoid-atlas-cli 0.16.0
File Size Uploaded
paranoid_atlas_cli-0.16.0.tar.gz 573.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for paranoid-atlas-cli 0.16.0
File Interpreter ABI Platform
paranoid_atlas_cli-0.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / paranoid_atlas_cli-0.16.0.tar.gz

Download URL paranoid_atlas_cli-0.16.0.tar.gz
Size 573.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3146ed7b0e6431f0445254122498a5fdf9a160776eac131e53fbbdeea0cd5cb1
BLAKE2b-256 checksum
How to use checksums
5fc34add2eb5d049da13a0beec24b87d9bd3fceaa63e48c58747728ad5a82868
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / paranoid_atlas_cli-0.16.0-py3-none-any.whl

Download URL paranoid_atlas_cli-0.16.0-py3-none-any.whl
Size 569.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a780aa9a92b923f8a06cd5819f5b6b7d891c867517fe31d1bf7fd1c37ab4e81
BLAKE2b-256 checksum
How to use checksums
92fcb8abf5ca76b204b78a3156b07022020b782c4d5dc898ff0bf0996a4486b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

This release

0.16.0 This release

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page