Install it
One curl writes the binary and pulls the skill pack into your project. macOS and Linux, Cursor, Codex and Claude Code.
Install is one command, run from the project directory you want Forge in.
curl -fsSL https://get.brightstack.ai/forge/install.sh | shcurl -fsSL https://get.brightstack.ai/forge/install.sh | FORGE_TOOLS=claude shThe variable goes on the sh, not on the curl. A shell applies a prefixed
assignment to the command it is attached to, and the installer reads it from its
own environment, so putting it on the left of the pipe silently installs the
default host instead.
That downloads a checksummed binary for your platform, writes it to
~/.local/bin/forge, and then runs forge setup in the current directory, which
pulls the latest skill pack from GitHub into the project.
It will not touch your shell config
If ~/.local/bin isn't on your PATH, the installer prints the export line and
leaves your rc files alone. Setup still runs, because the installer calls the
binary by absolute path.
macOS and Linux, on x64 and arm64. Windows and an npm package are not in this release.
Where it puts things
The host directory follows the agent you use. Cursor and Codex both read
.agents/skills/, Claude Code reads .claude/skills/, and a project that wants
Cursor's own directory can have .cursor/skills/. Picking the directory is the
only thing FORGE_TOOLS and --tools do.
forge setup # .agents — the default
forge setup --tools claude # .claude
forge setup --tools cursor # .cursor
forge setup --tools agents,claude # bothSetup writes only the names Forge owns — skills/forge,
skills/forge-code-review, agents/ and OKF.md — so your other skills stay
where they are. It merges into those directories rather than emptying them first.
An unknown tool name fails rather than guessing.
Restart your agent
A freshly created skill directory is often invisible to an already-running agent. Start it from the project directory, and restart it if Forge doesn't answer.
First use
The installer already ran forge setup for you, so there is nothing left to do in
a shell. Start your agent in the project directory and say this:
Read .agents/skills/forge/SKILL.md and use it as the Forge workflow.
Forge explore what this repository is and what state it's in.On Claude Code that first path is .claude/skills/forge/SKILL.md. You only need
that line once, to point the agent at the pack; after it has read the skill,
Forge explore, Forge build and the rest work on their own.
You should get back evidence, options and open questions, and no edits to your repository. Exploration creates no delivery authority at all, which makes it the cheapest way to see whether you like how Forge thinks.
Installing from a checkout
--pack skips the network and copies from a local package tree, which is what
you want in CI or when you're working on Forge itself:
forge setup --pack /path/to/forgeThat path must be the package root, with skills/forge,
skills/forge-code-review, agents/ and OKF.md directly under it. It is not
the directory holding the binary, and copying skills next to the binary does
nothing: templates are compiled in, skills never are.
What Forge reads from your repository
Forge takes its languages, frameworks, package manager, architecture conventions,
test commands and deployment rules from your AGENTS.md files, manifests and
existing code. When the evidence isn't there, it names the gap instead of
inventing a house style for you.
Next, pick the thing you're actually trying to do from How to, or read the CLI for the full command surface.