Reviewed-on: #37
Blacktower
Blacktower is an OpenCode orchestration plugin maintained by Subculture Collective. It adds a focused specialist team for delegated work, reviews, research, implementation, and local workflows.
What it provides
- Specialist delegation — route bounded research, review, design, and implementation work to focused agents.
- Council and Board — gather parallel perspectives or add optional consultant roles for broader work.
- Delegated-work controls — resume recent child-session context and cancel tracked tasks when needed.
- Local workflows — use tmux or Zellij panes, interviews, scheduled-task views, MCP connections, and opt-in toolkits.
- Managed skill catalog — policy-backed categories, packs, ownership, tiers, distribution, and per-agent access.
- Complete skill ownership — route every catalog skill to at least one suitable built-in or Board agent, including advisory owners for installed personal skills.
Blacktower works alongside OpenCode: authenticate providers and manage host settings in OpenCode, then configure Blacktower's agents, skills, and workflows.
Requirements
- OpenCode
- Node.js 24 or newer
- pnpm 11.10.0 for direct clone-based commands (
make installinvokes the pinned version through npm when pnpm is not installed globally)
Set up from a clone
git clone https://git.subcult.tv/subculture-collective/blacktower.git
cd blacktower
npm install --global [email protected]
pnpm install --frozen-lockfile
pnpm setup
pnpm setup preserves an existing blacktower.json by default. Existing
managed legacy installations retain trusted permissions. New installations
select preserve-host, but the preservation-aware installer is still unfinished
and currently stops before its permission/configuration changes. --trusted
explicitly selects the trusted installer, which overwrites global and existing
per-agent permissions with wildcard allow. Role capability ceilings still apply.
See host migration for the native v2 preservation
runtime and the remaining installation/cutover limitations.
Authenticate the providers you intend to use, then launch OpenCode:
opencode auth login
opencode models --refresh
opencode
Machine provisioning is explicit
Run this only when you want machine-level changes, such as installing or updating OpenCode, shell helpers, scheduler support, or optional integrations:
pnpm provision
Provisioning presents a plan, backs up existing OpenCode configuration, and preserves it unless you explicitly choose a reset. See the installation guide for flags and effects.
Minimal configuration
After setup, keep OpenCode host settings in ~/.config/opencode/opencode.json
and Blacktower settings in ~/.config/opencode/blacktower.jsonc. A small
Blacktower enables the six non-personal packs by default; configure packs only
when you need a narrower catalog or opt into repository-only personal skills:
{
"$schema": "https://git.subcult.tv/subculture-collective/blacktower/raw/branch/main/blacktower.schema.json",
"skillCatalog": {
"enabledPacks": ["core", "build", "operate", "knowledge", "growth", "creative"],
"discovery": "search"
},
"toolkits": {
"pluginHealth": true,
"github": true,
"review": true,
"observe": true,
"caveman": true,
"rtk": true
}
}
Project-specific overrides may live in .opencode/blacktower.json. Configuration
is JSONC-compatible, so comments and trailing commas are supported. See
Configuration for agent models, custom agents, Council,
Board, toolkits, multiplexer settings, and precedence.
End-user commands
# Setup and maintenance from a cloned checkout
pnpm setup
pnpm preview # show provisioning plan without changes
pnpm update
pnpm repair
# Local scheduled-task views
pnpm control-center
pnpm control-center:web
Contributor commands
pnpm build
pnpm typecheck
pnpm lint
pnpm test
pnpm check:ci
make help lists wrappers for common workflows. make install includes machine
provisioning, so use it only when that behavior is intended.
Documentation
Browse the complete documentation index.