Skip to content
    ↑↓ select↵ openesc close
    English中文
    runecraftai
    @runecraft/spawn

    Spawn tmux integration: automatically opens subagent panes and renders real-time agent execution with smart layouts

    GitHub stars

    1

    Monthly installs

    77

    11 in 7 days

    Composite scoreSCORE

    33.3

    Multi-signal model

    Last commit

    21 days ago

    2026-07-29

    Install and configure

    opencode.json

    Writes to this project's opencode.json — applies to this repository only.

    opencode.json

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["@runecraft/spawn@0.0.6"]
    }

    opencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.

    Arcanum: five OpenCode packages — Spells, Summon, Runes, Guild, and Spawn — shelved as artifacts in one Bun workspace monorepo

    Bun Workspaces Turborepo MIT License

    Artifacts

    Five independent packages, each installable on its own — none of them require the others.

    Artifact Package What it does Status
    Spells @runecraft/spells 17 SKILL.md files AI agents load as specialized instructions Published
    Summon @runecraft/summon Interactive CLI that installs Spells (and other tools) into any project Published
    Runes @runecraft/runes OpenCode plugin giving agents durable, SQLite-backed, per-repo memory Published
    Guild @runecraft/guild OpenCode plugin: 8 RPG-themed agents, workflows, and orchestration hooks Published
    Spawn @runecraft/spawn OpenCode plugin that opens a live tmux pane for every subagent Published
    Grimoire @runecraft/grimoire Shared Biome + TypeScript configs, inherited by every package above Internal
    Familiar @runecraftai/familiar Internal Pi multi-agent runtime — private, not published Internal

    What this is

    Arcanum is the monorepo behind the Runecraft family of OpenCode tooling. It's a Bun workspace, not a framework: each package above ships and versions independently on npm, and picking one doesn't pull in the rest.

    Why five separate packages

    Memory, orchestration, skill definitions, installation, and terminal visibility are different concerns with different lifecycles — Runes changes on a different cadence than Spawn, and a user who only wants persistent memory shouldn't have to install an 8-agent orchestration layer to get it. Splitting them keeps each package's surface area small enough to reason about, test, and version on its own.

    How it works

    • Bun workspaces link packages/* together for local development; published packages resolve workspace:* to real semver ranges via bun pm pack.
    • Turborepo v2 orchestrates build/lint/test across packages with caching and dependency-aware ordering.
    • Conventional commits → Changesets: a commit like feat(runes): add stats tool is turned into a changeset automatically by .changeset/generate-from-commits.ts, which drives the version bump and changelog on release. .changeset/*.md files are never hand-authored.
    • Biome, configured once in @runecraft/grimoire and inherited by every other package, enforces one lint/format standard monorepo-wide.

    How to use

    Working in this monorepo:

    bun install
    bun run build
    

    Common commands:

    bunx turbo lint
    bunx turbo test
    bunx turbo build
    

    Using one artifact in your own project — you don't need this repo at all, just install the package:

    npx @runecraft/summon install       # browse and install skills
    

    Each package's own README (guild, runes, spells, summon, spawn) has the full install and usage instructions for that artifact specifically.

    Contributing

    See CONTRIBUTING.md for the changeset-free commit workflow (changesets are generated from conventional commits, not written by hand) and the automated release pipeline. Architecture notes live under .specs/.

    License

    MIT