Back to CLI docs

Daemon Bootstrap

The Autonoma daemon is a local process that brokers every request from your IDE extension to the remote orchestrator. Extensions never hold API credentials or talk to the backend directly — the daemon is the trust boundary.

Why a daemon?

  • One credential, reused by every IDE (VS Code, JetBrains, Neovim, Emacs, Sublime).
  • Localhost-only WebSocket — the extension does not need TLS, secrets, or auth headers.
  • Backend URL and key rotate in one place, not in each editor config.
  • Self-hosted deployments can point the daemon at their own ALB without touching the IDE.

1. Install

# macOS / Linux
curl -sSf https://get.theautonoma.io/cli | sh

# Windows (PowerShell)
iwr https://get.theautonoma.io/cli.ps1 | iex

Installs the a6s binary to ~/.autonoma/bin. Run a6s --version to verify.

2. Authenticate

You have two options for giving the daemon an API key:

Option A — Paste from the dashboard

Go to dashboard → API keys, create a key, copy it once. Then:

a6s login --key <paste>

Option B — Welcome email

Your marketplace welcome email includes a ready-to-paste command:

a6s login --key <your_api_key>

The key is stored in your OS keychain (Keychain on macOS, libsecret on Linux, Credential Manager on Windows) — never on disk in plaintext.

3. Point at the right backend

By default the daemon talks to https://api.theautonoma.io. If you deployed Autonoma into your own AWS account (via customer-deploy-aws), point the daemon at your ALB:

a6s config set backend-url https://autonoma-<your-customer-id>.elb.us-east-1.amazonaws.com

The ALB URL is emitted by terraform output customer_callback_url after your deployment completes. You can also set autonoma.backendUrl in VS Code settings — the extension will push it to the daemon on every connect.

4. Start the daemon

# Foreground (useful for debugging)
a6s daemon

# Background (recommended)
a6s daemon --background

# Verify
a6s status

The daemon binds to 127.0.0.1:9876. If that port is taken, pass --port 9877 and update autonoma.daemonPort in your IDE extension.

Building your own client?

The full WebSocket protocol — methods, events, envelopes, conformance rules — is documented at Daemon Protocol v1.0. All five official extensions (VS Code, JetBrains, Neovim, Emacs, Sublime) conform to this spec.

5. Connect your IDE

Install the extension for your editor and it will auto-connect to the running daemon:

Troubleshooting

“Cannot connect to A6s daemon”
Run a6s status. If the daemon isn't running, start it with a6s daemon --background.
“Invalid API key”
Re-login with a6s login --key <key>. Generate a fresh key from the dashboard if in doubt.
“Unexpected response from backend”
Verify a6s config get backend-url points at the right environment. For self-hosted, this is your customer ALB, not api.theautonoma.io.