JOHNFORFAR/ workshops
CAMPUS CLAW · DAVAO

Set it up, start to finish

A private AI agent on your own laptop, running a local model, that can search the web and cite its sources. No account, no API key, no credit card. Every command below was run before it was written down, and every screenshot comes from that run.

**Verified end to end on 4 September 2026** — IronClaw v1.4.0, Ollama 0.33.0, macOS 26.5, Apple Silicon, 64 GB.
What you need
MachinemacOS, Linux or Windows
Disk~25 GB for the model
Memory**32 GB or more recommended.** See *If you have less RAM* below.
Accountsnone
**The one mistake that will cost you a day:** do not shrink the model's context window to save memory. An agent sends its whole tool catalogue on every turn, and truncating it breaks tool calling in a way that looks exactly like a broken install. The full story is on the What broke page.
Step 1

Install IronClaw

One binary. No runtime, no database.

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh

ironclaw --version      # ironclaw 1.4.0

Windows uses the PowerShell installer and has no background service, so you run ironclaw serve in a terminal and leave it open.

Step 2

Install Ollama and pull a model

Get Ollama from ollama.com/download, then:

ollama pull qwen3.6:35b-a3b

That is about 23 GB. It is a mixture-of-experts model — 36B total parameters but only ~3B active per token, so it runs far faster than its size suggests.

Keep it loaded so your first reply is not a cold start:

ollama run qwen3.6:35b-a3b "hi" --keepalive 8h
ollama ps      # expect: 100% GPU

100% GPU means every layer is on the GPU. If it shows a CPU split, the model does not fit and everything will be slow.

Step 3

Onboard

ironclaw onboard

A guided wizard. Pick a provider and it provisions local config, an encrypted credential store, and a browser login token. On macOS the master key goes into the **OS keychain**, not a file on disk.

If macOS asks permission for IronClaw to read a keychain item, **grant it**. Do not delete the item. Deleting it leaves an unreadable entry that breaks every later version until you wipe ~/.ironclaw and start over. This cost us an afternoon.
The gateway login screen. The token is printed by `ironclaw status`.

The gateway login screen. The token is printed by ironclaw status.

Step 4

Point IronClaw at Ollama

ironclaw models set-provider ollama --model qwen3.6:35b-a3b
ironclaw service restart      # config writes do NOT restart the service
ironclaw models status        # expect default.provider: ollama

Ollama is the only provider in the catalogue that needs no credential at all.

Step 5

Open the console

ironclaw status               # prints your login link

Open the printed link. If it scrolls away, the token is in a file:

cat ~/.ironclaw/reborn/webui-token
The console. Left rail: New, Workspace, Automations, Extensions, Settings, Admin.

The console. Left rail: New, Workspace, Automations, Extensions, Settings, Admin.

Step 6

Check the model is wired up

**Settings → Inference** shows the active provider and model.

Settings confirms the provider is Ollama and the model is the one you pulled.

Settings confirms the provider is Ollama and the model is the one you pulled.

Step 7

Give it a tool

Web access needs no credentials at all.

ironclaw extension install web-access

Expect phase: active and two capabilities, web-access.search and web-access.get_content.

The extension is installed and active.

The extension is installed and active.

The published docs tell you to run ironclaw extension activate afterwards. **That command does not exist.** install already activates. The real subcommands are search, install, remove.
Step 8

Watch it actually work

Click **New** and ask it something it cannot know from training data:

Search the web for the latest stable Rust compiler version,
then tell me the version number and cite the source URL.
The question, typed into a new conversation.

The question, typed into a new conversation.

The answer, with three cited sources and the tool-call activity indicator.

The answer, with three cited sources and the tool-call activity indicator.

Three things to notice in that screenshot:

The answer was **Rust 1.98.1, released 3 September 2026** — the day before the run. That version did not exist when the model was trained, which is the proof the tool genuinely executed rather than the model recalling something plausible.

Step 9

Make it work while you sleep

**Automations** runs things on a schedule, on a heartbeat, or on an event. Describe one in plain language and the agent creates it:

Create a routine that runs every weekday at 9am, searches for news
on my topic, and writes a summary to memory at daily/brief.md
Automations, created by asking in plain language.

Automations, created by asking in plain language.

If you have less RAM

A model that calls tools reliably wants roughly 24 GB free. The temptation is to shrink the context window so a big model fits. **Do not.** The payload IronClaw sends every turn is about 15,500 tokens — a ~23,500-character system prompt plus ~38,400 characters of tool schemas.

Context windowResult
8,192tool calls fail, silently
32,768works, with headroom
262,144 (stock)works

If you have 16 GB or less, use a hosted model for inference and keep everything else local. The agent, memory and tool sandbox still run on your machine.

Troubleshooting

SymptomCause and fix
workspace root must not overlap default skill root /skillsYou ran ironclaw from your home directory. cd into a project folder.
Login link 404sSomething else owns that port. lsof -nP -iTCP:3000 -sTCP:LISTEN
Config change did nothingironclaw service restart. Config writes do not restart the service.
Replies take minutesModel not resident, or two models loaded. Check ollama ps, keep one.
Tool calls answered in proseContext window too small. See above.
credential read failed: BackendUnavailableStale keychain entry after a version change. Remove ~/.ironclaw, delete the ironclaw keychain item, onboard fresh.

Reproducing these screenshots

They are generated, not hand-taken. The last test asserts a real answer appears, so if tool calling breaks the capture fails rather than quietly producing a screenshot of an error.

cd ironclaw-tests
npx playwright test tests/capture-guide.spec.js

← Back to the workshop