Docs

Fulcrum docs

Australian-owned terminal coding agent. File I/O, shell, search, memory, skills, and sub-agents — sovereign-hosted models, your code stays in Australia. One binary, two ways to run it (interactive TUI or one-shot fulcrum exec), 36 built-in tools, 37 slash commands, MCP-compatible.

Install

Single static binary. Pick your platform — the snippet installs into ~/.local/bin/fulcrum on Unix or fulcrum.exe in the current directory on Windows, and tracks the live release tag (currently v0.12.9). See /download for the full installer with copy buttons.

Apple Silicon (M1 / M2 / M3 / M4):
mkdir -p ~/.local/bin && curl -L -o ~/.local/bin/fulcrum https://releases.fulcrumcode.app/v0.12.9/fulcrum-macos-arm64 && chmod +x ~/.local/bin/fulcrum
Intel (x64):
mkdir -p ~/.local/bin && curl -L -o ~/.local/bin/fulcrum https://releases.fulcrumcode.app/v0.12.9/fulcrum-macos-x64 && chmod +x ~/.local/bin/fulcrum

Run uname -mif you're unsure: arm64 means Apple Silicon, x86_64 means Intel. Installs into ~/.local/bin/ — no admin password.

Verify:
fulcrum --version

Once the binary is on your PATH, run fulcrum login to sign in to fulcrumcode.app via PKCE OAuth and unlock the gateway. Pricing and tiers live at /subscribe.

What you can do

Twelve capability buckets, each grounded in a real CLI surface. Click to expand.

Edit code in your terminal

Read, Write, and Edit work as you would expect, with one rule that keeps refactors honest: Edit replaces an exact string and refuses to silently apply against the wrong match. NotebookEdit goes one level deeper for .ipynb cells. Multi-file refactors stream as a series of diffs, each rendered with line numbers and red/green backgrounds in the TUI.

fulcrum exec "rename UserService to AccountService across src/"
Run shell commands safely

The Bash tool is approval-gated. Long-running commands stream output incrementally into the transcript, and each call carries a one-line description that surfaces as a dim # comment under the command — so you always see what the agent thinks it is doing before output starts arriving.

fulcrum exec "run the test suite and fix any failures"
Explore unfamiliar codebases

Grep (ripgrep), Glob, and Ls cover search and discovery. Consecutive read-only calls collapse into a single ● Searched (N)group in the UI so a burst of exploration doesn't spam the transcript. Inside the TUI, /files shows recently-touched files and /contextshows how close you are to the model's window.

fulcrum
> find every place we hit the auth API
Search and fetch the web

WebFetch pulls a URL and converts the HTML to Markdown for the model. WebSearch issues a keyword query and returns ranked results. Use WebFetch when you have a known URL (docs, blog post, GitHub issue) and WebSearch when you need to discover one first.

fulcrum exec "summarise the latest release notes at https://example.com/releases"
Persistent memory

Fulcrum keeps an indexed memory tree at ~/.fulcrum/memory/ — a top-level MEMORY.md plus per-topic markdown files, all injected into the system prompt at session start. Project-level memory lives at CLAUDE.md and AGENTS.md in the repo root (the open standard plus the Claude Code convention). Use /memory to inspect and /btw to save a quick fact mid-conversation without polluting history.

> /btw I prefer pytest over unittest for new modules
Skills — packaged workflows

Skills are markdown files with YAML frontmatter that describe a focused workflow. The agent invokes them by name or by description match. Bundled skills live in the binary; user skills live at ~/.fulcrum/skills/. List installed skills with /skills; install more from any Claude-Code-compatible marketplace via /marketplace.

---
name: refactor
description: Systematic refactoring workflow
whenToUse: When you need to refactor code
allowedTools: [Read, Write, Edit, Glob, Grep]
---

You are performing a refactoring task. Steps:
1. Read and analyse the target.
2. Identify improvements.
3. Apply changes incrementally.
4. Verify with the existing test suite.
Plugins — custom slash commands

Drop a .py file into ~/.fulcrum/plugins/ and Fulcrum imports it on startup. Decorate any callable with @register_command from fulcrum.commandsto add a new slash command. Plugin failures are isolated — a broken plugin can't take down the TUI — and surfaced via /plugins.

# ~/.fulcrum/plugins/standup.py
from fulcrum.commands import register_command

@register_command(name="standup", help="Print yesterday's commits")
def standup(ctx, args):
    return ctx.run_shell("git log --since=yesterday --oneline")
MCP — connect external tools

Fulcrum speaks Model Context Protocol over stdio and SSE. List your servers in ~/.fulcrum/mcp.json(the format is compatible with Claude Code's mcpServers config) and tools from those servers appear alongside the built-ins in the agent's toolbelt. Use the /mcp slash command to add, list, reload, or authenticate against servers; bearer tokens and OAuth flows are handled by the mcp_auth tool.

{
  "mcpServers": {
    "gitnexus": {
      "command": "npx",
      "args": ["gitnexus", "mcp"]
    }
  }
}
Sub-agents

The Agent tool dispatches a task to a named sub-agent profile with its own system prompt, tool allowlist, and model. Sub-agents run in isolated context windows so they don't pollute the main thread, and can be dispatched in parallel. Profiles live in ~/.fulcrum/agents/ as markdown files with YAML frontmatter; ~/.claude/agents/ is also picked up for compatibility.

> spawn a code-reviewer subagent on the diff in src/auth/
Voice in and out

/voice records from the mic, transcribes via Whisper-Large-v3 on scx.ai, and drops the text into the prompt for review before submit. /speakreads the agent's next reply aloud through scx.ai's /audio/speech endpoint; toggle persistent speak-back with /speak-on and /speak-off. The voice catalog is Australian / Pacific by default — australian-sam, friendly-kiwi, likeable-aussie, ito, serene-assistant, alice-bennett — pick one with /voices.

Pipe and script

fulcrum exec is the non-interactive sibling of the TUI: take a prompt, stream the answer to stdout, exit. It pipes cleanly in either direction — feed logs in on stdin, grep the answer on stdout, embed it in a Makefile or CI step. No banner, no prompt UI, no approvals (tools that need approval are skipped or auto-denied in non-interactive mode).

tail -n 200 server.log | fulcrum exec "summarise the errors"
fulcrum exec "list the public functions in src/" > public-api.txt
Schedule recurring tasks

The Cron tool registers recurring or one-shot jobs. The agent defines a cron expression and a prompt; the harness executes it on schedule and feeds the result back as a user message. Pair with the Monitor tool to stream events from a long-running background process (each new stdout line becomes a notification the agent can react to).

> register a cron: every weekday 0900, run "fulcrum exec 'open PRs older than 7 days'"

Two ways to run it

Fulcrum is CLI-only — no IDE plugin, no desktop app, no browser session. There are two entry points: the interactive TUI and the one-shot fulcrum exec. Pick by what you need stdout for.

ModeWhen to use
fulcrum
Interactive TUI
Sustained sessions, exploring an unfamiliar codebase, multi-step refactors, anything where you want approval gates, slash commands, voice, queue + interrupt, and a scrollable transcript.
fulcrum exec "..."
One-shot non-interactive
Pipes, scripts, CI steps, single questions, anything you want as plain stdout. Reads stdin, streams the answer, exits.

Both modes share the same config (~/.fulcrum/config.json), the same memory, the same skills, the same MCP servers. The TUI just adds the conversational surface on top.

Configuration

One file at ~/.fulcrum/config.json, mode 0600. Any field can be overridden by an environment variable with the prefix FULCRUM_ (e.g. FULCRUM_API_KEY, FULCRUM_MODEL, FULCRUM_BASE_URL). The file is created on first fulcrum login; you can also hand-edit it.

{
  "base_url": "https://api.scx.ai/v1",
  "api_base_url": "",
  "session_token": "",
  "user_email": "",
  "api_key": "",
  "model": "MiniMax-M2.5",
  "vision_model": "Llama-4-Maverick-17B-128E-Instruct",
  "transcription_model": "Whisper-Large-v3",
  "tts_model": "tts-1",
  "tts_voice": "serene-assistant",
  "max_tokens": 8192,
  "theme": "fulcrum-amber",
  "vim_mode": false
}

Adjacent files: ~/.fulcrum/mcp.json (MCP server list), ~/.fulcrum/hooks.json (hook config — PreToolUse, FileChanged, SessionStart, UserPromptSubmit), ~/.fulcrum/keybindings.json (override any default chord), ~/.fulcrum/plugins/, ~/.fulcrum/skills/, ~/.fulcrum/agents/, ~/.fulcrum/memory/.

Next steps

  • Features → Complete map of tools, slash commands, marketplace, voice, vim mode, themes, plugins, hooks.
  • Download → Install configurator with platform tabs and copy buttons, tracking the live release tag.
  • Changelog → What shipped when, version by version.
  • Blog → Engineering deep-dives and design rationale.
  • Subscribe → Three tiers, AUD inc-GST, 50 seats per cohort. Source is available with a paid commercial licence.
  • scx.ai → The Australian-hosted inference provider Fulcrum talks to by default.