
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
@botanicastudios/code-team-runner
Advanced tools
A simple oclif CLI app that reads the code-team.config.mjs
file and sets up MCP (Model Context Protocol) configuration for Claude.
code-team.config.mjs
.code-team
folder in the current working directorymcp.json
file with MCP server configurationsnpm install
npm run build
npm link
./bin/run.js create
or if you have linked it globally:
code-team create
./bin/run.js create --task "Create a new React component"
By default, the CLI continues previous conversation context. To start fresh:
./bin/run.js create --reset-context --task "Start a new project"
By default, the CLI only shows the formatted conversation between agents. To see setup and configuration messages:
./bin/run.js create --debug --task "Create a component"
./bin/run.js create --help
The CLI looks for code-team.config.mjs
in this order:
This allows you to:
code-team.config.mjs
in your project directoryImportant: System prompt files are resolved relative to whichever directory the config file was found in.
code-team.config.mjs
in current directory, then CLI directory.code-team/
directory in the current working directorymcp.json
with agent configurations:
./claude-code-mcp/start.sh
(relative to config location)--task
flag)--verbose
--output-format stream-json
--mcp-config ./.code-team/mcp.json
--dangerously-skip-permissions
--continue
(unless --reset-context
flag is used)The generated mcp.json
follows this structure:
{
"mcpServers": {
"agent_name": {
"type": "stdio",
"command": "/absolute/path/to/config-location/claude-code-mcp/start.sh",
"args": [],
"env": {
"TOOL_NAME": "agent.toolName",
"WORKSPACE": "/absolute/path/to/invocation/directory",
"SYSTEM_PROMPT": "content of system prompt file",
"MODEL": "agent.model"
}
}
}
}
Each MCP server receives these environment variables:
TOOL_NAME
(required): The tool name from the agent configurationWORKSPACE
(required): The absolute path to the directory where the CLI was invokedSYSTEM_PROMPT
(optional): Content of the system prompt file, if specifiedAPPEND_SYSTEM_PROMPT
(optional): Content of the append system prompt file, if specifiedMODEL
(optional): The model name, if specified in the agent configurationNote: SYSTEM_PROMPT
, APPEND_SYSTEM_PROMPT
, and MODEL
are only included when they have actual values.
The MCP configuration file is created at ./.code-team/mcp.json
in your current working directory.
code-team.config.mjs
file (either in current directory or ships with CLI)Run in development mode:
npm run dev create
export default {
launchAgent: {
name: "project_manager",
description: "Project Manager",
toolName: "task_project_manager",
root: true,
systemPromptFile: "./system-prompts/project_manager.md",
},
agents: [
{
name: "qa_specialist",
description: "QA Specialist",
toolName: "task_qa_specialist",
systemPromptFile: "./system-prompts/qa_specialist.md",
},
{
name: "software_architect",
description: "Software Architect",
toolName: "task_software_architect",
systemPromptFile: "./system-prompts/software_architect.md",
model: "opus",
},
{
name: "developer",
description: "Developer",
toolName: "task_developer",
model: "sonnet",
},
],
};
Create a code-team.config.mjs
in your project directory to override the default configuration:
# In your project directory
echo 'export default { /* your config */ };' > code-team.config.mjs
code-team create
The CLI will use your local config and resolve system prompt files relative to your project directory.
If no local config exists, the CLI will use the default configuration that ships with it:
# From any directory without code-team.config.mjs
code-team create
The CLI will use the default config and resolve system prompt files relative to the CLI installation directory.
The CLI provides a beautifully formatted view of the conversation between your Project Manager and the different agents, with colors optimized for both dark and light terminal backgrounds.
--debug
): Shows setup messages plus the formatted conversationWhen using --debug
, you'll also see:
./.code-team/mcp.json
🚀 Session Started
Session ID: 1cc222fd-6efd-49af-81a7-6f07f4c1449f
Connected Agents: developer (connected), software_architect (connected), qa_specialist (connected)
🎯 Project Manager:
I'll help you create a Hello World Node.js script. Let me analyze the requirements...
📤 Requesting Software Architect:
Create a simple PRD (Product Requirements Document) for a Hello World Node.js script...
📥 Agent Response:
I've created the PRD and TODO list. The implementation tasks are now tracked...
📤 Requesting Developer:
Please implement the Hello World Node.js script based on the PRD and TODO list...
📥 Agent Response:
Created `hello.js` - run with `node hello.js` to see "Hello World" output.
✅ Task Completed Successfully!
Duration: 65s
Cost: $0.0794
Turns: 7
This formatted output makes it easy to follow the multi-way conversation and understand how your team of AI agents collaborates to complete tasks.
FAQs
CLI app for code-team project management
We found that @botanicastudios/code-team-runner demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.