5.8kā
by itsahedge
agent-council ā OpenClaw Skill
agent-council is an OpenClaw Skills integration for coding workflows. Complete toolkit for creating autonomous AI agents and managing Discord channels for OpenClaw. Use when setting up multi-agent systems, creating new agents, or managing Discord channel organization.
Skill Snapshot
| name | agent-council |
| description | Complete toolkit for creating autonomous AI agents and managing Discord channels for OpenClaw. Use when setting up multi-agent systems, creating new agents, or managing Discord channel organization. OpenClaw Skills integration. |
| owner | itsahedge |
| repository | itsahedge/agent-council |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @itsahedge/agent-council |
| last updated | Feb 7, 2026 |
Maintainer

name: agent-council description: Complete toolkit for creating autonomous AI agents and managing Discord channels for OpenClaw. Use when setting up multi-agent systems, creating new agents, or managing Discord channel organization.
Agent Council
Complete toolkit for creating and managing autonomous AI agents with Discord integration for OpenClaw.
What This Skill Does
Agent Creation:
- Creates autonomous AI agents with self-contained workspaces
- Generates SOUL.md (personality & responsibilities)
- Generates HEARTBEAT.md (cron execution logic)
- Sets up memory system (hybrid architecture)
- Configures gateway automatically
- Binds agents to Discord channels (optional)
- Sets up daily memory cron jobs (optional)
Discord Channel Management:
- Creates Discord channels via API
- Configures OpenClaw gateway allowlists
- Sets channel-specific system prompts
- Renames channels and updates references
- Optional workspace file search
Installation
# Install from ClawHub
clawhub install agent-council
# Or manual install
cp -r . ~/.openclaw/skills/agent-council/
openclaw gateway config.patch --raw '{
"skills": {
"entries": {
"agent-council": {"enabled": true}
}
}
}'
Part 1: Agent Creation
Quick Start
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "š¬" \
--specialty "Research and analysis specialist" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
Workflow
1. Gather Requirements
Ask the user:
- Agent name (e.g., "Watson")
- Agent ID (lowercase, hyphenated, e.g., "watson")
- Emoji (e.g., "š¬")
- Specialty (what the agent does)
- Model (which LLM to use)
- Workspace (where to create agent files)
- Discord channel ID (optional)
2. Run Creation Script
scripts/create-agent.sh \
--name "Agent Name" \
--id "agent-id" \
--emoji "š¤" \
--specialty "What this agent does" \
--model "provider/model-name" \
--workspace "/path/to/workspace" \
--discord-channel "1234567890" # Optional
The script automatically:
- ā Creates workspace with memory subdirectory
- ā Generates SOUL.md and HEARTBEAT.md
- ā Updates gateway config (preserves existing agents)
- ā Adds Discord channel binding (if specified)
- ā Restarts gateway to apply changes
- ā Prompts for daily memory cron setup
3. Customize Agent
After creation:
- SOUL.md - Refine personality, responsibilities, boundaries
- HEARTBEAT.md - Add periodic checks and cron logic
- Workspace files - Add agent-specific configuration
Agent Architecture
Self-contained structure:
agents/
āāā watson/
ā āāā SOUL.md # Personality and responsibilities
ā āāā HEARTBEAT.md # Cron execution logic
ā āāā memory/ # Agent-specific memory
ā ā āāā 2026-02-01.md # Daily memory logs
ā ā āāā 2026-02-02.md
ā āāā .openclaw/
ā āāā skills/ # Agent-specific skills (optional)
Memory system:
- Agent-specific memory:
<workspace>/memory/YYYY-MM-DD.md - Shared memory access: Agents can read shared workspace
- Daily updates: Optional cron job for summaries
Cron jobs: If your agent needs scheduled tasks:
- Create HEARTBEAT.md with execution logic
- Add cron jobs with
--session <agent-id> - Document in SOUL.md
Examples
Research agent:
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "š¬" \
--specialty "Deep research and competitive analysis" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
Image generation agent:
scripts/create-agent.sh \
--name "Picasso" \
--id "picasso" \
--emoji "šØ" \
--specialty "Image generation and editing specialist" \
--model "google/gemini-3-flash-preview" \
--workspace "$HOME/agents/picasso" \
--discord-channel "9876543210"
Health tracking agent:
scripts/create-agent.sh \
--name "Nurse Joy" \
--id "nurse-joy" \
--emoji "š" \
--specialty "Health tracking and wellness monitoring" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/nurse-joy" \
--discord-channel "5555555555"
Part 2: Discord Channel Management
Channel Creation
Quick Start
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis"
Workflow
- Run setup script:
python3 scripts/setup-channel.py \
--name <channel-name> \
--context "<channel-purpose>" \
[--category-id <discord-category-id>]
- Apply gateway config (command shown by script):
openclaw gateway config.patch --raw '{"channels": {...}}'
Options
With category:
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis" \
--category-id "1234567890"
Use existing channel:
python3 scripts/setup-channel.py \
--name personal-finance \
--id 1466184336901537897 \
--context "Personal finance management"
Channel Renaming
Quick Start
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name
Workflow
- Run rename script:
python3 scripts/rename-channel.py \
--id <channel-id> \
--old-name <old-name> \
--new-name <new-name> \
[--workspace <workspace-dir>]
-
Apply gateway config if systemPrompt needs updating (shown by script)
-
Commit workspace file changes (if
--workspaceused)
With Workspace Search
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name \
--workspace "$HOME/my-workspace"
This will:
- Rename Discord channel via API
- Update gateway config systemPrompt
- Search and update workspace files
- Report files changed for git commit
Complete Multi-Agent Setup
Full workflow from scratch:
# 1. Create Discord channel
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis" \
--category-id "1234567890"
# (Note the channel ID from output)
# 2. Apply gateway config for channel
openclaw gateway config.patch --raw '{"channels": {...}}'
# 3. Create agent bound to that channel
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "š¬" \
--specialty "Deep research and competitive analysis" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
# Done! Agent is created and bound to the channel
Configuration
Discord Category ID
Option 1: Command line
python3 scripts/setup-channel.py \
--name channel-name \
--context "Purpose" \
--category-id "1234567890"
Option 2: Environment variable
export DISCORD_CATEGORY_ID="1234567890"
python3 scripts/setup-channel.py --name channel-name --context "Purpose"
Finding Discord IDs
Enable Developer Mode:
- Settings ā Advanced ā Developer Mode
Copy IDs:
- Right-click channel ā Copy ID
- Right-click category ā Copy ID
Scripts Reference
create-agent.sh
Arguments:
--name(required) - Agent name--id(required) - Agent ID (lowercase, hyphenated)--emoji(required) - Agent emoji--specialty(required) - What the agent does--model(required) - LLM to use (provider/model-name)--workspace(required) - Where to create agent files--discord-channel(optional) - Discord channel ID to bind
Output:
- Creates agent workspace
- Generates SOUL.md and HEARTBEAT.md
- Updates gateway config
- Optionally creates daily memory cron
setup-channel.py
Arguments:
--name(required) - Channel name--context(required) - Channel purpose/context--id(optional) - Existing channel ID--category-id(optional) - Discord category ID
Output:
- Creates Discord channel (if doesn't exist)
- Generates gateway config.patch command
rename-channel.py
Arguments:
--id(required) - Channel ID--old-name(required) - Current channel name--new-name(required) - New channel name--workspace(optional) - Workspace directory to search
Output:
- Renames Discord channel
- Updates gateway systemPrompt (if needed)
- Lists updated files (if workspace search enabled)
Gateway Integration
This skill integrates with OpenClaw's gateway configuration:
Agents:
{
"agents": {
"list": [
{
"id": "watson",
"name": "Watson",
"workspace": "/path/to/agents/watson",
"model": {
"primary": "anthropic/claude-opus-4-5"
},
"identity": {
"name": "Watson",
"emoji": "š¬"
}
}
]
}
}
Bindings:
{
"bindings": [
{
"agentId": "watson",
"match": {
"channel": "discord",
"peer": {
"kind": "channel",
"id": "1234567890"
}
}
}
]
}
Channels:
{
"channels": {
"discord": {
"guilds": {
"YOUR_GUILD_ID": {
"channels": {
"1234567890": {
"allow": true,
"requireMention": false,
"systemPrompt": "Deep research and competitive analysis"
}
}
}
}
}
}
}
Agent Coordination
Your main agent coordinates with specialized agents using OpenClaw's built-in session management tools.
List Active Agents
See all active agents and their recent activity:
sessions_list({
kinds: ["agent"],
limit: 10,
messageLimit: 3 // Show last 3 messages per agent
})
Send Messages to Agents
Direct communication:
sessions_send({
label: "watson", // Agent ID
message: "Research the competitive landscape for X"
})
Wait for response:
sessions_send({
label: "watson",
message: "What did you find about X?",
timeoutSeconds: 300 // Wait up to 5 minutes
})
Spawn Sub-Agent Tasks
For complex work, spawn a sub-agent in an isolated session:
sessions_spawn({
agentId: "watson", // Optional: use specific agent
task: "Research competitive landscape for X and write a report",
model: "anthropic/claude-opus-4-5", // Optional: override model
runTimeoutSeconds: 3600, // 1 hour max
cleanup: "delete" // Delete session after completion
})
The sub-agent will:
- Execute the task in isolation
- Announce completion back to your session
- Self-delete (if
cleanup: "delete")
Check Agent History
Review what an agent has been working on:
sessions_history({
sessionKey: "watson-session-key",
limit: 50
})
Coordination Patterns
1. Direct delegation (Discord-bound agents):
- User messages agent's Discord channel
- Agent responds directly in that channel
- Main agent doesn't need to coordinate
2. Programmatic delegation (main agent ā sub-agent):
// Main agent delegates task
sessions_send({
label: "watson",
message: "Research X and update memory/research-X.md"
})
// Watson works independently, updates files
// Main agent checks later or Watson reports back
3. Spawn for complex tasks:
// For longer-running, isolated work
sessions_spawn({
agentId: "watson",
task: "Deep dive: analyze competitors A, B, C. Write report to reports/competitors.md",
runTimeoutSeconds: 7200,
cleanup: "keep" // Keep session for review
})
4. Agent-to-agent communication: Agents can send messages to each other:
// In Watson's context
sessions_send({
label: "picasso",
message: "Create an infographic from data in reports/research.md"
})
Best Practices
When to use Discord bindings:
- ā Domain-specific agents (research, health, images)
- ā User wants direct access to agent
- ā Agent should respond to channel activity
When to use sessions_send:
- ā Programmatic coordination
- ā Main agent delegates to specialists
- ā Need response in same session
When to use sessions_spawn:
- ā Long-running tasks (>5 minutes)
- ā Complex multi-step work
- ā Want isolation from main session
- ā Background processing
Example: Research Workflow
// Main agent receives request: "Research competitor X"
// 1. Check if Watson is active
const agents = sessions_list({ kinds: ["agent"] })
// 2. Delegate to Watson
sessions_send({
label: "watson",
message: "Research competitor X: products, pricing, market position. Write findings to memory/research-X.md"
})
// 3. Watson works independently:
// - Searches web
// - Analyzes data
// - Updates memory file
// - Reports back when done
// 4. Main agent retrieves results
const results = Read("agents/watson/memory/research-X.md")
// 5. Share with user
"Research complete! Watson found: [summary]"
Communication Flow
Main Agent (You) ā Specialized Agents:
User Request
ā
Main Agent (Claire)
ā
sessions_send("watson", "Research X")
ā
Watson Agent
ā
- Uses web_search
- Uses web_fetch
- Updates memory files
ā
Responds to main session
ā
Main Agent synthesizes and replies
Discord-Bound Agents:
User posts in #research channel
ā
Watson Agent (bound to channel)
ā
- Sees message directly
- Responds in channel
- No main agent involvement
Hybrid Approach:
User: "Research X" (main channel)
ā
Main Agent delegates to Watson
ā
Watson researches and reports back
ā
Main Agent: "Done! Watson found..."
ā
User: "Show me more details"
ā
Main Agent: "@watson post your full findings in #research"
ā
Watson posts detailed report in #research channel
Troubleshooting
Agent Creation Issues:
"Agent not appearing in Discord"
- Verify channel ID is correct
- Check gateway config bindings section
- Restart gateway:
openclaw gateway restart
"Model errors"
- Verify model name format:
provider/model-name - Check model is available in gateway config
Channel Management Issues:
"Failed to create channel"
- Check bot has "Manage Channels" permission
- Verify bot token in OpenClaw config
- Ensure category ID is correct (if specified)
"Category not found"
- Verify category ID is correct
- Check bot has access to category
- Try without category ID (creates uncategorized)
"Channel already exists"
- Use
--id <channel-id>to configure existing channel - Or script will auto-detect and configure it
Use Cases
- Domain specialists - Research, health, finance, coding agents
- Creative agents - Image generation, writing, design
- Task automation - Scheduled monitoring, reports, alerts
- Multi-agent systems - Coordinated team of specialized agents
- Discord organization - Structured channels for different agent domains
Advanced: Multi-Agent Coordination
For larger multi-agent systems:
Coordination Patterns:
- Main agent delegates tasks to specialists
- Agents report progress and request help
- Shared knowledge base for common information
- Cross-agent communication via
sessions_send
Task Management:
- Integrate with task tracking systems
- Route work based on agent specialty
- Track assignments and completions
Documentation:
- Maintain agent roster in main workspace
- Document delegation patterns
- Keep runbooks for common workflows
Best Practices
- Organize channels in categories - Group related agent channels
- Use descriptive channel names - Clear purpose from the name
- Set specific system prompts - Give each channel clear context
- Document agent responsibilities - Keep SOUL.md updated
- Set up memory cron jobs - For agents with ongoing work
- Test agents individually - Before integrating into team
- Update gateway config safely - Always use config.patch, never manual edits
Requirements
Bot Permissions:
Manage Channels- To create/rename channelsView Channels- To read channel listSend Messages- To post in channels
System:
- OpenClaw installed and configured
- Node.js/npm via nvm
- Python 3.6+ (standard library only)
- Discord bot token (for channel management)
See Also
- OpenClaw documentation: https://docs.openclaw.ai
- Multi-agent patterns: https://docs.openclaw.ai/agents
- Discord bot setup: https://docs.openclaw.ai/channels/discord
Agent Council
Complete toolkit for creating and managing autonomous AI agents with Discord integration for OpenClaw.
Features
Agent Creation:
- Autonomous agent architecture with self-contained workspaces
- SOUL.md personality system
- Memory management (hybrid architecture with daily logs)
- Discord channel bindings
- Automatic gateway configuration
- Optional cron job setup
Discord Channel Management:
- Create Discord channels via API
- Configure OpenClaw gateway allowlists
- Set channel-specific system prompts
- Rename channels and update references
- Optional workspace file search
Installation
Prerequisites
- OpenClaw installed and configured
- Node.js/npm via nvm (for OpenClaw)
- Discord bot with "Manage Channels" permission (optional)
- Python 3.6+ (standard library only)
Install Skill
# Clone the repo
git clone https://github.com/itsahedge/agent-council.git
cd agent-council
# Copy to OpenClaw skills directory
cp -r . ~/.openclaw/skills/agent-council/
# Enable skill in config
openclaw gateway config.patch --raw '{
"skills": {
"entries": {
"agent-council": {"enabled": true}
}
}
}'
Quick Start
Create an Agent
~/.openclaw/skills/agent-council/scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "š¬" \
--specialty "Research and analysis specialist" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
Create a Discord Channel
python3 ~/.openclaw/skills/agent-council/scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis"
Rename a Channel
python3 ~/.openclaw/skills/agent-council/scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name
Common Workflow
Complete multi-agent setup:
# 1. Create Discord channel
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis" \
--category-id "1234567890"
# (Copy the channel ID from output)
# 2. Apply gateway config for channel
openclaw gateway config.patch --raw '{"channels": {...}}'
# 3. Create agent bound to that channel
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "š¬" \
--specialty "Deep research and competitive analysis" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
# Done! Agent is created and bound to the channel
Agent Creation
Basic Usage
scripts/create-agent.sh \
--name "Agent Name" \
--id "agent-id" \
--emoji "š¤" \
--specialty "What this agent does" \
--model "provider/model-name" \
--workspace "/path/to/workspace" \
--discord-channel "1234567890" # Optional
What It Does
- ā Creates workspace with memory subdirectory
- ā Generates SOUL.md (personality & responsibilities)
- ā Generates HEARTBEAT.md (cron execution logic)
- ā Updates gateway config automatically
- ā Adds Discord channel binding (if specified)
- ā Restarts gateway to apply changes
- ā Optionally sets up daily memory cron job
Examples
Research agent:
scripts/create-agent.sh \
--name "Watson" \
--id "watson" \
--emoji "š¬" \
--specialty "Deep research and competitive analysis" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/watson" \
--discord-channel "1234567890"
Image generation agent:
scripts/create-agent.sh \
--name "Picasso" \
--id "picasso" \
--emoji "šØ" \
--specialty "Image generation and editing specialist" \
--model "google/gemini-3-flash-preview" \
--workspace "$HOME/agents/picasso" \
--discord-channel "9876543210"
Health tracking agent:
scripts/create-agent.sh \
--name "Nurse Joy" \
--id "nurse-joy" \
--emoji "š" \
--specialty "Health tracking and wellness monitoring" \
--model "anthropic/claude-opus-4-5" \
--workspace "$HOME/agents/nurse-joy" \
--discord-channel "5555555555"
Discord Channel Management
Create Channel
Basic:
python3 scripts/setup-channel.py \
--name fitness \
--context "Fitness tracking and workout planning"
With category:
python3 scripts/setup-channel.py \
--name research \
--context "Deep research and competitive analysis" \
--category-id "1234567890"
Use existing channel:
python3 scripts/setup-channel.py \
--name personal-finance \
--id 1466184336901537897 \
--context "Personal finance management"
Rename Channel
Basic:
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name
With workspace search:
python3 scripts/rename-channel.py \
--id 1234567890 \
--old-name old-name \
--new-name new-name \
--workspace "$HOME/my-workspace"
Architecture
Agent Structure
Each agent is self-contained:
agents/
āāā watson/
ā āāā SOUL.md # Personality and responsibilities
ā āāā HEARTBEAT.md # Cron execution logic
ā āāā memory/ # Agent-specific memory
ā ā āāā 2026-02-01.md # Daily memory logs
ā ā āāā 2026-02-02.md
ā ā āāā 2026-02-03.md
ā āāā .openclaw/
ā āāā skills/ # Agent-specific skills (optional)
Memory System
Hybrid architecture:
- Agent-specific memory:
<workspace>/memory/YYYY-MM-DD.md - Shared memory access: Agents can read shared workspace for context
- Daily updates: Optional cron job for end-of-day summaries
Gateway Configuration
Agents and channels are automatically configured:
{
"agents": {
"list": [
{
"id": "watson",
"name": "Watson",
"workspace": "/path/to/agents/watson",
"model": {
"primary": "anthropic/claude-opus-4-5"
},
"identity": {
"name": "Watson",
"emoji": "š¬"
}
}
]
},
"bindings": [
{
"agentId": "watson",
"match": {
"channel": "discord",
"peer": {
"kind": "channel",
"id": "1234567890"
}
}
}
],
"channels": {
"discord": {
"guilds": {
"YOUR_GUILD_ID": {
"channels": {
"1234567890": {
"allow": true,
"requireMention": false,
"systemPrompt": "Deep research and competitive analysis"
}
}
}
}
}
}
}
Agent Coordination
Your main agent can coordinate with specialized agents using OpenClaw's built-in tools.
List Active Agents
See all active agents and their recent activity:
sessions_list({
kinds: ["agent"],
limit: 10,
messageLimit: 3 // Show last 3 messages per agent
})
Send Messages to Agents
Direct communication:
sessions_send({
label: "watson", // Agent ID
message: "Research the competitive landscape for X"
})
Wait for response:
sessions_send({
label: "watson",
message: "What did you find about X?",
timeoutSeconds: 300 // Wait up to 5 minutes
})
Spawn Sub-Agent Tasks
For complex work, spawn a sub-agent in an isolated session:
sessions_spawn({
agentId: "watson", // Optional: use specific agent
task: "Research competitive landscape for X and write a report",
model: "anthropic/claude-opus-4-5", // Optional: override model
runTimeoutSeconds: 3600, // 1 hour max
cleanup: "delete" // Delete session after completion
})
The sub-agent will:
- Execute the task in isolation
- Announce completion back to your session
- Self-delete (if
cleanup: "delete")
Check Agent History
Review what an agent has been working on:
sessions_history({
sessionKey: "watson-session-key",
limit: 50
})
Coordination Patterns
1. Direct delegation (Discord-bound agents):
- User messages agent's Discord channel
- Agent responds directly in that channel
- Main agent doesn't need to coordinate
2. Programmatic delegation (main agent ā sub-agent):
// Main agent delegates task
sessions_send({
label: "watson",
message: "Research X and update memory/research-X.md"
})
// Watson works independently, updates files
// Main agent checks later or Watson reports back
3. Spawn for complex tasks:
// For longer-running, isolated work
sessions_spawn({
agentId: "watson",
task: "Deep dive: analyze competitors A, B, C. Write report to reports/competitors.md",
runTimeoutSeconds: 7200,
cleanup: "keep" // Keep session for review
})
4. Agent-to-agent communication: Agents can send messages to each other:
// In Watson's context
sessions_send({
label: "picasso",
message: "Create an infographic from data in reports/research.md"
})
Best Practices
When to use Discord bindings:
- ā Domain-specific agents (research, health, images)
- ā User wants direct access to agent
- ā Agent should respond to channel activity
When to use sessions_send:
- ā Programmatic coordination
- ā Main agent delegates to specialists
- ā Need response in same session
When to use sessions_spawn:
- ā Long-running tasks (>5 minutes)
- ā Complex multi-step work
- ā Want isolation from main session
- ā Background processing
Example: Research Workflow
// Main agent receives request: "Research competitor X"
// 1. Check if Watson is active
const agents = sessions_list({ kinds: ["agent"] })
// 2. Delegate to Watson
sessions_send({
label: "watson",
message: "Research competitor X: products, pricing, market position. Write findings to memory/research-X.md"
})
// 3. Watson works independently:
// - Searches web
// - Analyzes data
// - Updates memory file
// - Reports back when done
// 4. Main agent retrieves results
const results = Read("agents/watson/memory/research-X.md")
// 5. Share with user
"Research complete! Watson found: [summary]"
Configuration
Discord Category ID
Organize channels in Discord categories:
Option 1: Command line
python3 scripts/setup-channel.py \
--name channel-name \
--context "Purpose" \
--category-id "1234567890"
Option 2: Environment variable
export DISCORD_CATEGORY_ID="1234567890"
python3 scripts/setup-channel.py --name channel-name --context "Purpose"
Finding Discord IDs
Enable Developer Mode:
- Settings ā Advanced ā Developer Mode
Copy IDs:
- Right-click channel ā Copy ID
- Right-click category ā Copy ID
Scripts Reference
create-agent.sh
Creates autonomous AI agents.
Arguments:
--name(required) - Agent name--id(required) - Agent ID (lowercase, hyphenated)--emoji(required) - Agent emoji--specialty(required) - What the agent does--model(required) - LLM to use (provider/model-name)--workspace(required) - Where to create agent files--discord-channel(optional) - Discord channel ID to bind
setup-channel.py
Creates and configures Discord channels.
Arguments:
--name(required) - Channel name--context(required) - Channel purpose/context--id(optional) - Existing channel ID--category-id(optional) - Discord category ID
rename-channel.py
Renames channels and updates references.
Arguments:
--id(required) - Channel ID--old-name(required) - Current channel name--new-name(required) - New channel name--workspace(optional) - Workspace directory to search
Documentation
See SKILL.md for complete documentation including:
- Detailed workflows
- Cron job setup
- Troubleshooting
- Advanced multi-agent coordination
- Best practices
Use Cases
- Domain specialists - Research, health, finance, coding agents
- Creative agents - Image generation, writing, design
- Task automation - Scheduled monitoring, reports, alerts
- Multi-agent systems - Coordinated team of specialized agents
- Discord organization - Structured channels for different agent domains
Bot Permissions
Required Discord bot permissions:
Manage Channels- To create/rename channelsView Channels- To read channel listSend Messages- To post in channels
Community
- OpenClaw Docs: https://docs.openclaw.ai
- OpenClaw Discord: https://discord.com/invite/clawd
- Skill Catalog: https://clawhub.com
Contributing
Contributions welcome! Please:
- Fork the repo
- Create a feature branch
- Make your changes
- Submit a PR with clear description
License
MIT License - see LICENSE file for details
About
Community-contributed skill for the OpenClaw ecosystem.
Complete toolkit for building multi-agent systems with autonomous agents and organized Discord channels.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
Ask the user: - **Agent name** (e.g., "Watson") - **Agent ID** (lowercase, hyphenated, e.g., "watson") - **Emoji** (e.g., "š¬") - **Specialty** (what the agent does) - **Model** (which LLM to use) - **Workspace** (where to create agent files) - **Discord channel ID** (optional)
Configuration
### Discord Category ID **Option 1: Command line** ```bash python3 scripts/setup-channel.py \ --name channel-name \ --context "Purpose" \ --category-id "1234567890" ``` **Option 2: Environment variable** ```bash export DISCORD_CATEGORY_ID="1234567890" python3 scripts/setup-channel.py --name channel-name --context "Purpose" ``` ### Finding Discord IDs **Enable Developer Mode:** - Settings ā Advanced ā Developer Mode **Copy IDs:** - Right-click channel ā Copy ID - Right-click category ā Copy ID
FAQ
How do I install agent-council?
Run openclaw add @itsahedge/agent-council in your terminal. This installs agent-council into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/itsahedge/agent-council. Review commits and README documentation before installing.
