# CLI

> Connect a project to Arcjet with the CLI: sign in, pick a team and site, and write ARCJET_KEY. Use when bootstrapping Arcjet, listing requests or guards, or managing remote rules from a terminal.

- Skill: `arcjet/cli` (Agent Skill)
- Install (CLI): `npx skillmds@latest add arcjet/cli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arcjet/cli/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: arcjet (https://skillmd.com/u/arcjet)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/arcjet/cli

---


# Arcjet CLI

Preferred way to get a real `ARCJET_KEY` before writing Arcjet code. Do not
leave the key as a TODO.

```bash
npx -y @arcjet/cli@latest auth status
# if not signed in:
npx -y @arcjet/cli@latest auth login

npx -y @arcjet/cli@latest teams list --output json --fields id,name
npx -y @arcjet/cli@latest sites list --team-id <team_id> --output json --fields id,name
npx -y @arcjet/cli@latest sites get-key --site-id <site_id> --output json --fields key
```

Write `key` to the project's env file as `ARCJET_KEY=ajkey_...`. Match
existing env-file conventions and `.gitignore`. Never hardcode the key.

Frequent use: `npm install -g @arcjet/cli`, `brew install arcjet/tap/arcjet`,
or `curl -sSfL https://arcjet.com/cli/install.sh | bash`.

`--output json` and `--fields` keep agent context small. Confirm with the
user before write or delete operations (`--confirm`).

Investigate: `requests list` / `guards list` / `requests explain` /
`guards explain` / `briefing`. Remote rules: `rules create` (DRY_RUN) →
`analyze dry-run-impact` → `rules promote`.

If the CLI cannot run, load `@arcjet/skills#mcp` or send the user to
https://console.arcjet.com.

