Risk is graded
rm, Remove-Item, git push --force, curl | sh and friends are flagged high before you ever read the command.
Forge drives a language model running on your own computer and lets it do real work — run terminal commands, edit files, call MCP tools. Every single action stops and waits for you. Nothing is sent anywhere.
When the model wants to do something, the server stops and blocks. You see the exact command, the model's stated reason, and a risk level. Nothing runs until you click.
Delete the temporary cache directory to clean up unused resources.
rm -rf ./cache
rm, Remove-Item, git push --force, curl | sh and friends are flagged high before you ever read the command.
Read and write tools are confined to the workspace folder. Paths that try to escape it are rejected outright.
The tool call blocks on a promise. A denial resolves it without ever reaching your shell.
Skills are markdown files the model reads — and writes for itself — so the install gets more capable over time.
Forge counts the tokens you actually use and prices the same work against paid APIs, fetched live rather than hardcoded. Figures below are a real session.
| Model | Vendor | In / M | Out / M | This session |
|---|---|---|---|---|
| GPT-5.5 | OpenAI | $5.00 | $30.00 | $0.127 |
| Claude Opus 5 | Anthropic | $5.00 | $25.00 | $0.125 |
| Gemini 3.1 Pro | $2.00 | $12.00 | $0.051 | |
| Claude Sonnet 5 | Anthropic | $2.00 | $10.00 | $0.050 |
| granite4:7b — local | you | $0.00 | $0.00 | $0.00 |
Forge also measures tool-calling rather than trusting what a model advertises. One popular coding model claims tool support and is scored text only, because it prints the call as prose instead of emitting it — a difference that is invisible until an agent loop silently does nothing.
It controls the computer it runs on. The web page is just the steering wheel.
git clone https://github.com/siterepository/forge.git cd forge npm install ollama pull granite4:7b-a1b-h npm start Forge → http://127.0.0.1:4317 ┌─ FIRST RUN — this password is shown once ───────────── │ xK7pQm2Rt9Wv4Nz-bYhF3sLd └─ stored hashed in auth.json (scrypt). Save it now. ──
Sign-in is required, sessions are scrypt-backed, and the server binds to loopback by default. Read the security notes →