Skip to content

// GET STARTED

install

ulk is a collection of Markdown agents for Claude Code. No runtime, no dependencies — just a folder of files copied into ~/.claude/.

MIT v6.0.1 macOS · Linux · WSL
1. CLONE

Grab the repo anywhere on your machine.

BASH
git clone https://github.com/izo/ulk
cd ulk
2. INSTALL

The installer compiles agents into the shapes Claude Code expects and copies them into your user config.

BASH
./install.sh

Figma (7), Swift (7), Flutter (2), Obsidian/kepano (5), context-audit, symbols and architecture-diagram community skills are bundled by default.

Optional flags:

BASH
# Skills (opt-in)
./install.sh --with-figma-mcp                # configure Figma MCP server
./install.sh --with-addy-skills              # + addyosmani community skills
./install.sh --with-a11y-skills              # + accessibility skills (RAWeb/RAAM)
./install.sh --with-nothing-design           # + Nothing design system (dominikmartn)
./install.sh --with-hue-skill                # + Hue design language generator
./install.sh --with-cwb-app-icon             # + AppIcon iOS/macOS (SnapAI, requires OpenAI key)
./install.sh --with-logo-generator-skill     # + logo generator (Gemini API)
./install.sh --with-caveman-skill            # + caveman-compress (CLAUDE.md, -46% tokens)
./install.sh --with-caveman-output-skill     # + caveman output mode (-79% tokens agent reports)
./install.sh --with-session-defaults         # + /session-defaults — token economy env vars
./install.sh --with-web-design-skill         # + /web-design-guidelines (vercel-labs, MIT — UI a11y/focus/semantics)
./install.sh --with-kami-skill               # + kami (pro docs: One-Pager, Letter, Slides…)
./install.sh --with-visual-explainer-skill   # + /visual-explainer — terminal → HTML (Mermaid, diff-review, slides, project-recap)
./install.sh --with-ai-adoption-skill        # + /ai-adoption — AI authorship metric from git signals (0 tokens)
./install.sh --with-ehmo-web-skill           # + web-platform-guidelines (WCAG 2.2, 70+ rules)
# Camille Roux 2026 v3 (opt-in)
./install.sh --with-token-efficient-skill    # + CLAUDE.md drop-in -63% output tokens
./install.sh --with-claude-seo-skill         # + SEO + GEO universal audit (AgriciDaniel)
./install.sh --with-claude-health-skill      # + Claude Code config audit 6 layers (tw93)
./install.sh --without-obsidian-skills       # opt-out 5 kepano skills (bundled by default)
./install.sh --without-update-check          # opt-out daily update check (Bruce Phase 0.6, on by default)

# Hooks and modes
./install.sh --with-vps                      # + VPS agents
./install.sh --with-teams                    # + Agent Teams (experimental)
./install.sh --with-memory-loop              # + Knowledge Vault Loop hooks
./install.sh --with-xavier-hook              # + SessionStart context check (project/account guard)
./install.sh --with-cli-telemetry            # + CLI usage tracking
./install.sh --with-accountability           # + audit trail: mutations → accountability.jsonl + reads (loadable/read ratio) → read-coverage.jsonl
./install.sh --with-context-mode             # + Context Mode (saves $8-$24/month on output tokens)
./install.sh --with-statusline               # + ulk statusline (cwd · model · ctx% · P0 · git hash)
./install.sh --with-managed-agents           # + Managed Agents (Anthropic beta, cloud sessions)
./install.sh --with-faru                     # + faru mode (git-native agent-first kanban)
./install.sh --with-sentinel                 # + Sentinel hook (cascade pre-push/pre-deploy)
./install.sh --with-code-graph               # + Code Review Graph MCP (-8.2× tokens on monorepo audits)

# CLI bundles (opt-in)
./install.sh --with-container-clis           # docker · kubectl · helm · k9s · lazydocker
./install.sh --with-monitoring-clis          # vegeta · hyperfine · gping · mtr
./install.sh --with-ai-clis                  # ollama · apfel · aider · llm
./install.sh --with-doc-clis                 # mdbook · vale · markdownlint-cli2
./install.sh --with-data-clis                # jq · yq · csvkit · duckdb · visidata
./install.sh --with-design-clis              # imagemagick · ffmpeg · svgo · sharp-cli
./install.sh --with-devops-clis              # terraform · ansible · pulumi · act
./install.sh --with-mobile-clis              # xcrun · bundler · fastlane · expo · eas-cli

./install.sh --dry-run                       # simulate without writing

A shellcheck pre-commit hook is installed automatically — it lints staged .sh files before every commit. Install shellcheck to activate it: brew install shellcheck.

macOS 26+ bonus: install Apfel to offload micro-tasks (extraction, classification, summaries) to Apple Intelligence — free, local, zero Claude tokens.

BASH
brew install Arthur-Ficial/tap/apfel
2b. CLI GO (v6)

From v5, ulk ships as a single Go binary (ulk) that progressively replaces install.sh. V6 adds multi-LLM export and a live dashboard.

BASH
ulk install [--with-*]    # install — interactive TUI wizard on first run
ulk update [--check]      # diff checksums + auto-rollback on error
ulk uninstall [--module]  # remove one module, or --all
ulk status                # modules ✓/○ + version
ulk verify                # paths + prereqs + local LLMs
ulk check                 # detected CLIs + installed skills
ulk clean [--dry-run]     # remove orphaned agents / skills
ulk dashboard [--serve]   # TUI dashboard — CLIs, Skills, Agents, updates

State lives in ~/.ulk/state.json (atomic write). 72 typed modules; backup & rollback are automatic. The Mole-style TUI launcher (Bubble Tea + Catppuccin) opens on bare ulk.

Architecture & flow: /docs/guides/cli-go.

Build locally:

BASH
cd framework/cli
make build        # → ./bin/ulk
make test         # 275+ unit tests
make release-dry  # simulate goreleaser release
2c. MULTI-LLM EXPORT (v6)

ulk v6 runs on three AI CLI alternatives in addition to Claude Code. Generate the context files once; commit them for your whole team.

BASH
ulk export --target codex    # → AGENTS.md (OpenAI Codex CLI + Mistral Vibe)
ulk export --target gemini   # → GEMINI.md + .gemini/agents/ (6 sub-agents)
ulk export --target mistral  # → .vibe/agents/ (6 TOML configs)
ulk export --target all      # → all platforms at once
ulk export --target all --dry-run  # preview without writing

Ported agents (bruce · godspeed · sargeras · 2b3 · task-runner · verify) cover the full dev cycle on Codex, Gemini, and Mistral Vibe. Model mapping: opus → o3 / gemini-2.5-pro / mistral-medium-3-5.

Protocol: framework/agents/_shared/multi-provider-protocol.md

2d. MANAGED AGENTS (Anthropic beta)

Cloud Claude Code sessions — no local machine needed. Five agents ported to run server-side via the Anthropic Managed Agents beta.

BASH
./install.sh --with-managed-agents   # activate + generate YAML configs
ulk ma sargeras "Audit the repo — 10 axes"
ulk ma ed209 "OWASP security scan framework/agents/"
ulk ma 2b3 "End-of-session checkpoint"
ulk ma ci-guard "Fix failing CI on branch feat/x"

Agents: ed209 · sargeras · 2b3 · ci-guard · lovecraft-memory-capture. IDs stored in .ulk/managed-agents/ids.json. Protocol: framework/agents/_shared/managed-agents-protocol.md

3. VERIFY

Confirm the agents are wired up and the CLI helpers can be found.

BASH
./install.sh --verify
./framework/tools/check-tools.sh
4. INVOKE BRUCE

From inside any project, open Claude Code and run the orchestrator. Bruce auto-detects project state and routes to the right agent.

TEXT
/ulk:bruce

# or simply type
bruce
UPDATE

ulk releases are pulled by re-running the installer.

BASH
cd /path/to/ulk
git pull
./install.sh
UNINSTALL

Removes installed agents from ~/.claude/.

BASH
./uninstall.sh
DESIGN.md FORMAT

ulk adopts the google-labs-code/design.md format for DESIGN.md files at the project root. YAML front-matter holds machine-readable tokens (colors, typography, rounded, spacing, components with {colors.x} refs); the Markdown body follows 8 canonical sections (Brand & Style, Colors, Typography, Layout & Spacing, Elevation & Depth, Shapes, Components, Do's & Don'ts).

agamotto (17) generates it from Figma / Pencil / Penpot. brique (01) parses the YAML front-matter and maps tokens to Tailwind / shadcn. No install needed — the format is plain text. The official CLI is opt-in via npx:

BASH
# Lint + WCAG contrast check
npx @google-labs-code/design.md lint DESIGN.md

# Export to Tailwind tokens
npx @google-labs-code/design.md export --format tailwind DESIGN.md

# Export to W3C DTCG
npx @google-labs-code/design.md export --format w3c DESIGN.md
NEXT

Learn how agents are organized in /agents, or dig into the /docs tree for architecture and protocols.