Claude Code Agent Development
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Runs a local council when no external AI providers are configured.
$ npx skills add hex/claude-council --skill local-council-execution -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hex/claude-council local-council-execution --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hex/claude-council.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/local-council-execution .claude/skills/local-council-execution && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "local-council-execution" agent skill from https://github.com/hex/claude-council/tree/main/skills/local-council-execution into .claude/skills/local-council-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-council-execution", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hex/claude-council/tree/main/skills/local-council-executionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hex/claude-council --skill local-council-execution -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hex/claude-council local-council-execution --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hex/claude-council.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/local-council-execution .agents/skills/local-council-execution && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "local-council-execution" agent skill from https://github.com/hex/claude-council/tree/main/skills/local-council-execution into .agents/skills/local-council-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-council-execution", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hex/claude-council --skill local-council-execution -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hex/claude-council local-council-execution --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hex/claude-council.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/local-council-execution .cursor/skills/local-council-execution && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "local-council-execution" agent skill from https://github.com/hex/claude-council/tree/main/skills/local-council-execution into .cursor/skills/local-council-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-council-execution", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hex/claude-council.git --path skills/local-council-execution--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hex/claude-council --skill local-council-execution -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hex/claude-council local-council-execution --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hex/claude-council.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/local-council-execution .gemini/skills/local-council-execution && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "local-council-execution" agent skill from https://github.com/hex/claude-council/tree/main/skills/local-council-execution into .gemini/skills/local-council-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-council-execution", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hex/claude-council local-council-executionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hex/claude-council --skill local-council-execution -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hex/claude-council.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/local-council-execution .github/skills/local-council-execution && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "local-council-execution" agent skill from https://github.com/hex/claude-council/tree/main/skills/local-council-execution into .github/skills/local-council-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-council-execution", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hex/claude-council --skill local-council-execution -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hex/claude-council local-council-execution --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hex/claude-council.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/local-council-execution .opencode/skills/local-council-execution && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "local-council-execution" agent skill from https://github.com/hex/claude-council/tree/main/skills/local-council-execution into .opencode/skills/local-council-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-council-execution", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
local-council-executionRuns a local council when no external AI providers are configured.
Local Council Execution is an agent skill from hex/claude-council. Runs a local council when no external AI providers are configured. Spawns N independent Claude subagents (one per role, blind to each other) that each answer the question from a single assigned lens, then synthesizes their perspectives. Invoked by the ask command via --local, or when the user accepts the local-council offer after no providers are found. This is a same-model (Claude-only) panel, not a cross-vendor council.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `agent-prompt-template.md`).
It sits in Agent Workflows, covering Subagents. The repository describes itself as: Claude Code plugin that asks several AI coding agents the same question and shows their answers side by side. Gemini, OpenAI, Grok, Perplexity, Kimi and any model OpenRouter… The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 23867e1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Local Council Execution loads about 1.6k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 752 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from hex/claude-council at commit 23867e1, republished under its MIT licence (© hex). 752 words, ~1,632 tokens.
.claude/skills/local-council-execution/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.When no external providers are configured, convene a council of independent Claude subagents instead. Each member answers from one role, blind to the others; you then synthesize the spread of perspectives.
Read this first — the honest framing is not optional. Every member is Claude. They share priors and training, so agreement between them is weak signal, not validation. The value here is independent angles and blind-spot coverage, not consensus. The output you produce MUST make this explicit and MUST NOT present member agreement as if it were cross-vendor corroboration.
A local council is the fallback for when no real providers exist — it is not a default way to "use the council". Only proceed if one of these holds:
--local, orIf you reached this skill any other way, verify providers are actually absent before spawning anything:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/query-council.sh --list-default 2>&1 | head -1If that lists one or more providers and the user did not ask for --local,
STOP — do not spawn local members. Run the standard cross-vendor flow
(council-execution) so the real providers answer, since same-model role-play is
strictly weaker than the cross-vendor council the user can actually get.
Source the libs once:
source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/prompts.sh
source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/roles.shIf the user passed --roles, it already says both which lenses and how many
members — use it directly and skip the size question:
local_council_roles "<--roles value>"Otherwise, ask the user how many members to convene, then resolve that many:
AskUserQuestion:
Question: "How many independent perspectives should the local council convene? More members means broader angle coverage, but a longer run and synthesis."
Header: "Members"
multiSelect: false
Options:
- "4 (Recommended) - balanced breadth"
- "3 - quick, three sharpest lenses"
- "5 - thorough"
- "6 - exhaustive"Then pass the chosen number as the count:
local_council_roles "" "<chosen number>"local_council_roles returns a comma-separated role list (e.g.
devil,simplicity,security,scalability). Each role becomes one council member;
N = number of roles. It draws from a diverse ordering and clamps to the 8
available roles — a user who wants more or specific lenses can pass --roles
(e.g. --roles=security,devil,simplicity,scalability,dx,compliance). If you want
to be safe, validate_roles "<list>" returns non-zero on an unknown role.
Build the text each member will answer:
--file or auto-context (the same context the
cross-vendor flow would send). Include it inline so members can reason about it
even though they will also read referenced files themselves.For each role, build the role-injected prompt and spawn one member. See
agent-prompt-template.md for the exact prompt and the
build_prompt_with_role call.
Launch all members in a single message (multiple Agent tool calls) with:
subagent_type: "general-purpose"run_in_background: trueThe member framing (independent, blind to the others, commit to the assigned lens, return format) lives in the prompt itself — see the template. Launching them together runs them concurrently and keeps each one blind to the others.
You are notified automatically as each background member finishes. Wait for ALL of them before synthesizing. If a member fails or times out, note it and continue with the rest.
Lead with this banner verbatim (it sets honest expectations):
Local council — these perspectives all come from Claude playing different roles, not from different AI vendors. Treat agreement as a shared starting point to pressure-test, not as independent confirmation.
Then, for each member, display its perspective under a header naming the role
(use get_role_name "<role>" for the display name):
## 🗳️ {ROLE_NAME}
{member's Position / Key points / Risks & blind spots / Confidence}Because members share a model, frame the synthesis around spread and coverage, NOT agreement strength:
mkdir -p .claude/council-cacheWrite the full output (banner + all member perspectives + synthesis) to
.claude/council-cache/local-council-{TIMESTAMP}.md where TIMESTAMP is the
current Unix timestamp. Then tell the user:
Local council saved to
.claude/council-cache/local-council-{TIMESTAMP}.mdFor cross-vendor perspectives, configure a provider key or install a CLI (/claude-council:statusshows what's available).
© hex, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/local-council-execution of hex/claude-council.
Open the folder on GitHubat commit 23867e1
Local Council Execution next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Local Council Execution this skillhex/claude-council | 848 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 38k | 8 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Subagent Driven DevelopmentAsvarox/allkaraoke | 261 | 38 repos | ~1.2k | Automated safety check: Pass | None | |
| Dispatching Parallel Agentsultralisp/ultralisp | 258 | 41 repos | ~1.5k | Automated safety check: Pass | None | |
| Paseo Advisor Second Opiniongetpaseo/paseo | 20k | 1 repos | ~756 | Automated safety check: Pass | Custom licence | |
| Task Observerrebelytics/one-skill-to-rule-them-all | 3.2k | 1 repos | ~12k | Automated safety check: Pass | CC-BY-4.0 |
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Asvarox/allkaraoke
A skill your agent uses when executing implementation plans with independent tasks in the current session
ultralisp/ultralisp
A skill your agent uses when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
getpaseo/paseo
Launches one separate agent through Paseo to give a second opinion on the current task, with a self-contained briefing and no permission to edit files.
rebelytics/one-skill-to-rule-them-all
Monitors task execution for skill improvement opportunities.
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
hex/claude-council
Executes council queries by running the query pipeline across selected AI providers (Gemini, OpenAI, Grok, Perplexity), displaying formatted responses verbatim, and generating a synthesis of…
hex/claude-council
Executes agent-enhanced council queries as one Workflow of parallel Claude analyst agents that each query a provider, evaluate response quality, ask follow-up questions, and return a schema-enforced…
hex/claude-council
Adds new AI providers to claude-council, configures provider API settings, troubleshoots provider connections, and documents the provider script interface.
hex/claude-council
A bug reproduces, the expected behaviour is clear, and the fix stands apart from the current work.
hex/claude-council
A CI job fails on a named revision and the fix belongs in code, config or tests, not in the CI provider.
hex/claude-council
Docs must be updated or restructured to match code that already changed: README, reference pages, CLI help or config docs.
Categories
Runs a local council when no external AI providers are configured. Local Council Execution is an agent skill from hex/claude-council. Runs a local council when no external AI providers are configured.
Local Council Execution fits situations like: accepts the local-council offer after no providers are found; tasks that involve Subagents.
Run `npx skills add hex/claude-council --skill local-council-execution -a claude-code`. Or copy the skill folder (skills/local-council-execution in hex/claude-council) into .claude/skills/local-council-execution in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hex/claude-council --skill local-council-execution -a codex`. Or copy the skill folder (skills/local-council-execution in hex/claude-council) into .agents/skills/local-council-execution in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hex/claude-council --skill local-council-execution -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/local-council-execution, .gemini/skills/local-council-execution, .github/skills/local-council-execution and .opencode/skills/local-council-execution in your project.
Going by SKILL.md and its folder, Local Council Execution needs the command-line tools its instructions call (bash).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Local Council Execution is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Local Council Execution: Claude Code Agent Development (anthropics/claude-plugins-official, 38k stars), Subagent Driven Development (Asvarox/allkaraoke, 261 stars), Dispatching Parallel Agents (ultralisp/ultralisp, 258 stars) and Paseo Advisor Second Opinion (getpaseo/paseo, 20k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hex (a GitHub user) maintains it in hex/claude-council, which has 848 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.
Source: hex/claude-council on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.