Agentic Toolkit
Reusable infrastructure for building agentic systems with multi-model councils, hierarchical sub-agents, and provenance-tracked tool loops. Lifted from production code (Brandling, 2026 BytePlus Seedance Beta hackathon) and hardened with depth caps + required provenance.
- Type
- Plugin
- Repository
- ooiyeefei/ccc
- GitHub stars
- 493
- License
- MIT
- Repo last updated
- Jul 29, 2026
- Version
- 0.1.0
- Author
- ooiyeefei
What Agentic Toolkit is
Agentic Toolkit is a plugin published in the ooiyeefei/ccc repository on GitHub, which has about 493 stars. The repository describes itself as: “Claude Code Custom Plugins - Custom plugins for Claude Code CLI”
A plugin is a package that bundles skills, slash commands, subagents, hooks, and MCP connectors so they install together. Plugins are plain files with a manifest at .claude-plugin/plugin.json, and they work in both Claude Code and Claude Cowork.
Installing Agentic Toolkit adds everything it ships in one step. Connectors inside a plugin still need to be connected separately, and hooks and subagents only run in Cowork and Claude Code, not in regular chat.
How to install Agentic Toolkit
Claude Code
- Add the repository as a plugin marketplace: claude plugin marketplace add ooiyeefei/ccc
- Install the plugin: claude plugin install agentic-toolkit@<marketplace-name>, using the marketplace name from the repository's .claude-plugin/marketplace.json.
- Restart the session if the new skills or commands don't appear straight away.
Claude Cowork
- Open Customize → Plugins and choose Add marketplace.
- Enter ooiyeefei/ccc (the owner/repo shorthand works for GitHub).
- Find Agentic Toolkit in the list, click Install, then connect any connectors it needs from its Connectors tab.
New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.
Inside the source file
An excerpt from plugins/agentic-toolkit/.claude-plugin/plugin.json, shared under the repository's MIT license. Read the full file on GitHub.
Reusable infrastructure for building agentic systems with multi-model councils, hierarchical sub-agents, and provenance-tracked tool loops.
Lifted from production code (Brandling, 2026 BytePlus Seedance Beta hackathon) and hardened with the lessons documented in that codebase's "what we'd change" appendix — depth caps enforced at the runner level, provenance required at the type level, per-model knobs lifted into the registry, secretarial summaries to combat context explosion in nested spawn trees.
This is a reference TypeScript package, not a tested library. The point is to save a week of plumbing per new agentic project (groot-finance, yf-hazop, tutorial-gen, …) by shipping the five things every Brandling-style system ends up re-implementing.
What's in here
agentic-toolkit/
├── .claude-plugin/
│ └── plugin.json
└── src/
├── gateway.ts # multi-model gateway adapter
├── models-registry.ts # per-role model registry with knobs
├── sub-agent-runner.ts # depth + spawn + timeout enforced runner
├── events.ts # typed AgentSseEvent + formatSseEvent
├── provenance.ts # required _source tag + helpers
└── council-state-machine.ts # generic foreman with mandatory start/endThe five components
1. Gateway adapter (gateway.ts). A thin createGateway({ baseURL, apiKey, name? }) wrapper around @ai-sdk/openai-compatible. Keep one provider for Claude / GPT / Gemini behind a unified endpoint (TokenRouter, OpenRouter, LiteLLM, Vercel AI Gateway). The registry is the single seam where "Opus is suddenly expensive" turns into a 1-character edit.
2. Models registry (models-registry.ts). A typed ModelsRegistry binding role names to { model, knobs } entries. Per-model knobs (e.g. noToolChoiceRequired: true for GPT-class models that infinite-loop on toolChoice: 'required') live in the registry, not at every call site. Ships with defaultBrandlingRegistry showing the 8-role marketing council as a starting template.
3. Sub-agent runner (sub-agent-runner.ts). runSubAgent with depth cap, per-parent spawn cap, wall-clock timeout, and a typed SubAgentResult ('ok' | 'failed' | 'depth_exceeded' | 'timeout'). Ported from Brandling's runSubAgent and hardened: Brandling tracked depth in events only; this runner refuses to spawn beyond maxDepth so prompt regressions can't blow past the limit.
4. Events (events.ts). The full AgentSseEvent typed union (phase_change, phase_status, agent_step with depth + parentAgent, agent_error, mutation_field) plus formatSseEvent. AgentTraceRole and AgentPhase are generic so HAZOP / finance / tutorial-gen pipelines can name their roles and phases without forking the file.
5. Provenance (provenance.ts). GenerationSource ('live' | 'cached'
assertProvenance runtime guard. _source is required at the type level — Brandling shipped it optional and got bitten by demo data masquerading as live output downstream.
The council state machine
6. Council state machine (council-state-machine.ts). A generic foreman runner. Pass a persona palette, a mandatoryStartTool, a mandatoryEndTool, revision/step caps, and an assembleResult callback; the runner handles the tool-loop, SSE events, revision bookkeeping, partial-state fallback, and the shared stopWhen: [hasToolCall(end), stepCountIs(cap)] invariant. Distilled from Brandling's marketing-domain runDebateAgentic (council-foreman.ts:41).
Hello world
import { createGateway } from './gateway';
import { defineRegistry } from './models-registry';
import { runCouncil } from './council-state-machine';
import { withProvenance, type Provenanced } from './provenance';
import type { AgentSseEvent } from './events';
import { z } from 'zod';
// 1. Wire the gateway once.
const gateway = createGateway({
baseURL: process.env.GATEWAY_BASE_URL!,
apiKey: process.env.GATEWAY_API_KEY!,
});
// 2. Register the roles.
const MODELS = defineRegistry({
foreman: { model: gateway('anthropic/claude-opus-4.7') },
cfo: { model: gateway('anthropic/claude-sonnet-4.6') },
auditor: {
…Design constraints (read these before extending)
These are lifted from Brandling Appendix A. They override convenience.
Before you install
- Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
- Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
- Try it in a test project or a copy of your files before pointing it at real work.
- Pin the version you tested, and review changes before updating.
- Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.
FAQ
What is Agentic Toolkit?
Agentic Toolkit is a plugin for Claude Code and Claude Cowork from the ooiyeefei/ccc repository on GitHub. Reusable infrastructure for building agentic systems with multi-model councils, hierarchical sub-agents, and provenance-tracked tool loops. Lifted from production code (Brandling, 2026 BytePlus Seedance Beta hackathon) and hardened with depth caps + required provenance.
How do I install Agentic Toolkit in Claude Code?
Add the repository as a plugin marketplace: claude plugin marketplace add ooiyeefei/ccc Install the plugin: claude plugin install agentic-toolkit@<marketplace-name>, using the marketplace name from the repository's .claude-plugin/marketplace.json. Restart the session if the new skills or commands don't appear straight away.
Can I use Agentic Toolkit in Claude Cowork?
Open Customize → Plugins and choose Add marketplace. Enter ooiyeefei/ccc (the owner/repo shorthand works for GitHub). Find Agentic Toolkit in the list, click Install, then connect any connectors it needs from its Connectors tab.
Is Agentic Toolkit safe to install?
It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.
Similar resources
- Mvp Launch Web app MVP launch readiness checker. Analyzes existing codebases against a battle-tested 10-point checklist (Stripe, mobile, onboarding, AI stability, emails, logging, feedback, auth, domain, database). Identifies gaps, confirms understanding with user, and produces prioritized action items. Philosophy: Don't overbuild. Plugin · ooiyeefei/ccc
- Rethink Surveys Survey design framework grounded in proven research methods (Caroline Jarrett's Surveys That Work, Dillman's Tailored Design, Tourangeau's cognitive model). Captures user intent — what people are actually trying to do, what friction they face, what outcomes they want — without leading questions, satisficing bait, or shallow Likert noise. Includes a 4-part hybrid structure (discovery / diagnostic… Plugin · ooiyeefei/ccc
- Product Management AI-native product management for startups. Transform Claude into an expert PM with competitive research, gap analysis using the WINNING filter, PRD generation, and GitHub Issues integration. Plugin · ooiyeefei/ccc
- Deckling Generate native PPTX files using Anthropic Platform Skills. No ugly python-pptx - uses Anthropic's server-side rendering engine. Plugin · ooiyeefei/ccc
- Bitwize Music AI music generation workflow for Suno - album concepts, lyrics, prompts, mastering, release Plugin · bitwize-music-studio/claude-ai-music-skills
- Video Recap Skills Independent stages plus a thin orchestrator for Chinese-narration recaps from supported video files: local Python/ffmpeg; remote Xiaomi MiMo ASR, VLM, and default TTS; optional Fish Audio TTS with a separate API key or a self-hosted HTTP TTS endpoint; final playback review required. Plugin · zenstory-ai/video-recap-skills
- Communitytools Claude Code skills and agents for authorized security testing, bug bounty hunting, and pentesting workflows Plugin · transilienceai/communitytools
- Phx Elixir/Phoenix/LiveView development with specialist agents, Iron Laws, and Tidewave MCP integration Plugin · oliver-kriska/claude-elixir-phoenix