Quick Start · node9 documentation

Quick Start

From zero to protected in under 2 minutes.

1Install Node9
Install the Node9 CLI globally via npm or Homebrew:
# Homebrew (macOS / Linux)
brew tap node9-ai/node9
brew install node9

# Or via npm
npm install -g node9-ai
2Connect an AI agent
Run node9 init: it detects every installed agent and wires the deepest control it supports: a pre-execution hook for Claude Code, Codex, Copilot CLI, Gemini CLI, Antigravity and Hermes, a plugin for OpenCode and Pi, and MCP governance for Cursor, Windsurf, VS Code and Claude Desktop:
node9 init   # one command, all detected agents
After init, every tool call routes through Node9 automatically. Use node9 doctor to verify the wiring afterwards.
3Enable shields for the services you use
Node9 ships with core protection always on (git, SQL, shell). Enable shields for the specific infrastructure your agent has access to. On a machine that follows a cloud workspace, shields are set in the workspace and local enables are ignored:
node9 shield enable postgres   # protect your database
node9 shield enable aws        # protect your cloud
node9 shield enable github     # protect your repos
node9 shield list              # see all available shields
4Connect to your workspace (optional)
For Mission Control, Policy Studio and a team audit trail, log in. Run it with no argument and node9 opens your browser to confirm the machine; nothing is copied and pasted.
node9 login
On a machine with no browser, or over SSH, print the link instead and open it wherever you are:
node9 login --no-browser
To connect a machine from the dashboard rather than from the machine, the dashboard issues a token and the same onboarding runs from it. A service or CI account still uses a key, which is what the optional key argument is for.
node9 connect <token>       # token from the dashboard
node9 login <service-key>   # service and CI accounts
To keep policy decisions on this machine, where the cloud never overrides them and only cost data syncs:
node9 login --local
A machine logged in this way stays unkeyed, so what you enable locally is what governs. On a machine that is keyed, it is the workspace that decides, and something you enabled here can read as enabled while the workspace has not turned it on. node9 shield list says which of the two you are looking at.
5Verify everything is wired
Run the health check to confirm binaries, config, and hooks are all correctly set up:
node9 doctor
Then start your agent and ask it to run a dangerous command. The review prompt appears inline in the agent (or as an OS dialog on agents without inline review). Check the audit log afterwards:
node9 audit
Named Profiles (Multiple Workspaces)Advanced
To manage multiple workspaces on the same machine, use named profiles:
# Save a named profile
node9 login --profile work
node9 login --profile personal

# Select active profile
export NODE9_PROFILE=work
The active profile determines which credentials and workspace are used. Defaults to the default profile if NODE9_PROFILE is not set.