QuickStart
Get Jan Agent running and finish a real task in a few minutes. You need a terminal and access to a model provider or an OpenAI-compatible endpoint.
Install Nightly
Jan Agent is a preview. The installers below pull from the agent-nightly channel - expect
nightly-quality builds.
curl -fsSL https://delta.jan.ai/jan-cli/install-jan-agent.sh | bashInstalls to ~/.local/bin by default. Override it with JAN_INSTALL_DIR=/usr/local/bin, and make
sure the directory is on your PATH.
irm https://delta.jan.ai/jan-cli/install-jan-agent.ps1 | iexInstalls to %USERPROFILE%\.local\bin, which isn't on your PATH by default. To install and add
it to your user PATH in one go, then open a new terminal:
& ([scriptblock]::Create((irm https://delta.jan.ai/jan-cli/install-jan-agent.ps1))) -AddToPathCheck it worked:
jan --versionAlready have the Jan repo checked out? scripts/install-jan-agent.sh --source builds from your
checkout instead of downloading. Source builds don't self-update, because the update channel is
stamped in by CI.
Connect a provider
Jan Agent has no local inference engine - it calls a cloud provider or an HTTP endpoint. Point it at one:
jan config set --provider anthropic --api-key sk-ant-...Or sign in to Tokamak, which needs no key of your own:
jan loginConfirm what's configured (keys are redacted):
jan config listAlready using Jan Desktop? You can skip provider setup if Jan Agent inherits an enabled HTTP provider with a usable endpoint and any required credentials. Desktop local llama.cpp or MLX models alone are not enough: start Desktop's Local API Server, then configure Jan Agent to use its endpoint. Jan Agent does not start Desktop's inference engine.
Open the console
Change into the project you want to work on, then start with approval prompts enabled:
jan --safeYou get an interactive console: type a message, press Enter. The agent works in the directory you launched it from.
Plain jan auto-approves tool calls. This walkthrough uses --safe so you can review writes,
shell commands, and MCP tool calls before allowing them. This does not sandbox commands: the shell
is unconfined by default and runs with your access. To enable both controls, use
jan --safe --sandbox. See Tools & permissions.
Give it a task
Start with something small and verifiable:
Read the README and tell me how to run the testsBuilt-in file reads inside the project do not need approval. Reads outside the project may prompt. If the agent requests approval for a shell command or a change while investigating, review it before allowing it.
Now ask for a change:
Add a --version flag to the CLI and update the README to document itWith --safe, file writes prompt unless a policy allow rule or an existing grant covers them.
Dedicated memory and skill tools do not prompt, including writes. Review a file-write request's
path and diff; shell requests show the command. Use the arrow keys to select Allow once
or Deny, then press Enter. You can also press y to allow once or
n to deny.
Some requests also offer a thread-level grant, selected with a. Read its label: for a shell command it may allow the named commands or only that exact command, not every future shell call. Choose Allow once throughout this walkthrough to avoid granting approval to later calls.
Watch it work
While the agent runs you'll see each tool call as it happens, and a receipt when the turn ends:
Worked for 12s • 14:02 • ↑ 43K ↓ 1.1K • 45.6/sThat's how long the turn took, when it finished, context sent, tokens produced, and throughput.
Press Esc at any point to cancel the current turn. Press Ctrl+D to quit.
Pick up where you left off
Sessions are saved per project. To continue the most recent one:
jan --safe -cOr choose from a list inside the console with /resume.
Try these next
Three things worth doing on your first day:
Explore before changing. Start read-only so the agent can investigate without touching anything:
jan --safe --planIt will study the project and propose a plan. Type /plan exit when you're ready to let it act.
Safe mode stays on after you exit plan mode: writes, shell commands, and MCP calls still follow
its approval rules.
Set a finish line. Instead of babysitting turn by turn, tell it what "done" means:
/goal all tests in tests/auth passThe agent keeps working and re-checking until that holds.
Seed a task from the shell. Start the interactive console with an initial task:
jan --safe --task "fix the failing test in tests/auth"Where to go next
Every slash command and keyboard shortcut.
What the agent can reach, and how to widen or narrow it.
Per-project instructions, models, and budgets.
Split a big job across agents running in parallel.
Troubleshooting
jan: command not found - the install directory isn't on your PATH. The installer prints a
note when it detects this. Add ~/.local/bin to your shell profile. On Windows, re-run the installer
with -AddToPath (see Install Nightly) and open a new terminal. If the installer warns that
another jan comes first on your PATH, remove the entry it names.
"no providers configured" - run jan config set --provider <id> --api-key <key>, or jan login
for Tokamak. jan config path prints the file it reads.
The agent won't edit anything - you're in plan mode. Type /plan exit.
Model errors or an unexpected model - /model inside the console lists what's available and
switches on the spot. jan config list shows which providers are wired up.