bash <(curl -fsSL https://your-url/install-aea.sh)curl -fsSL https://your-url/install-aea.sh -o install-aea.sh
chmod +x install-aea.sh
./install-aea.sh ~/my/project# Install in current directory
bash /path/to/repo-a/.aea/scripts/install-aea.sh
# Install in another directory
bash /path/to/repo-a/.aea/scripts/install-aea.sh ~/other/project# Check directory structure
tree -L 3 .aea/ .claude/
# Test message checking
bash .aea/scripts/aea-check.sh
# View configuration
cat .aea/agent-config.yamlTo upgrade an existing AEA installation to the latest version:
# From repository root
bash .aea/aea.sh upgrade
# Or from within .aea directory
cd .aea && bash aea.sh upgrade- β Documentation - All docs/*.md files
- β Scripts - All operational scripts
- β Prompts - All prompts/*.md templates
- β Protocol - PROTOCOL.md specification
- β Configuration - Your agent-config.yaml settings
- β Messages - All message-*.json files
- β History - .processed/ directory
- β Logs - agent.log activity log
- Automatic backup created at
.aea/.backup-{timestamp}/ - Updates files that have changed
- Shows summary of what was updated
- Provides rollback command if needed
Example output:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AEA Protocol - Upgrade Utility β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[INFO] AEA Directory: .aea
[INFO] Source: /path/to/aea
[INFO] Creating backup at .aea/.backup-20251026-152143...
[SUCCESS] Backup created
[INFO] Updating documentation...
[SUCCESS] Updated docs/AGENT_GUIDE.md
[SUCCESS] Updated 14 documentation file(s)
[SUCCESS] Upgrade complete! Updated 15 file(s)
To rollback if needed:
cp -r .aea/.backup-20251026-152143/* .aea/
AEA enables Claude agents in different repositories to:
- π€ Communicate asynchronously via JSON message files
- π Auto-process safe operations (questions, analysis, documentation)
β οΈ Request approval for risky operations (code changes, deployments)- π Log everything for audit trails
| Type | Description | Auto-Response |
|---|---|---|
| question | Technical questions | β Auto-responds |
| update | Status updates | β Acknowledges |
| issue (low/med) | Bug reports | β Analyzes & suggests fix |
| issue (high/urgent) | Critical bugs | β Requires approval |
| handoff | Integration work | β Requires approval |
| request | Feature requests | β Responds with plan |
- low: Non-urgent, informational
- normal: Standard priority (default)
- high: Important, needs attention
- urgent: Critical, immediate action needed
In Claude:
/aea
In Terminal:
bash .aea/scripts/aea-check.shSimple Question:
.aea/scripts/aea-send.sh \
--to claude-other-repo \
--to-path /path/to/repo \
--type question \
--subject "How to optimize X?" \
--message "Detailed question here..."Urgent Issue:
.aea/scripts/aea-send.sh \
--to claude-aea \
--to-path /path/to/repo-a \
--type issue \
--priority urgent \
--subject "π¨ Memory leak in production" \
--message "Critical issue details..."Status Update:
.aea/scripts/aea-send.sh \
--to claude-agent-1 \
--to-path /path/to/repo-b \
--type update \
--priority normal \
--requires-response false \
--subject "Deployed v2.1.0" \
--message "Successfully deployed to staging..."Start Monitor:
.aea/scripts/aea-monitor.sh startCheck Status:
.aea/scripts/aea-monitor.sh statusStop Monitor:
.aea/scripts/aea-monitor.sh stop# Create all test scenarios
bash .aea/scripts/create-test-scenarios.sh all
# Create specific scenario
bash .aea/scripts/create-test-scenarios.sh urgent-issue
bash .aea/scripts/create-test-scenarios.sh simple-question
bash .aea/scripts/create-test-scenarios.sh handoff-
Create simple question:
bash .aea/scripts/create-test-scenarios.sh simple-question
-
Trigger processing:
/aea -
Expected: Claude automatically:
- Searches codebase for answer
- Generates technical response
- Creates response message
- Marks original as processed
-
Create urgent issue:
bash .aea/scripts/create-test-scenarios.sh urgent-issue
-
Trigger processing:
/aea -
Expected: Claude:
- Reads urgent issue
- Notifies you with summary
- Asks: "Should I analyze and propose a fix?"
- Waits for your approval
Edit .aea/agent-config.yaml to customize behavior:
response_policy:
question:
auto_respond: true # β
Auto-process
approval_required: false
actions:
- search_codebase
- analyze_code
- provide_answer
- send_response
issue:
urgent:
auto_respond: false # β Ask first
approval_required: true
actions:
- analyze_issue
- notify_user
- wait_for_approval# Tail logs in real-time
tail -f .aea/agent.log
# View recent activity
tail -50 .aea/agent.log
# Search logs
grep "message_type" .aea/agent.log# List all processed messages
ls -1 .aea/.processed/
# Check if specific message was processed
ls -1 .aea/.processed/message-20251014T*.json# List all messages
ls -1 .aea/message-*.json
# Read specific message
cat .aea/message-20251014T135220Z-from-claude-test-urgent.json | jq
# Check message details
jq '.message_type, .priority, .from.agent_id' .aea/message-*.jsonEdit .aea/agent-config.yaml:
agent:
id: "claude-myrepo" # Change this
name: "My Project Agent"
description: "Custom description"
capabilities:
- code_analysis
- documentation
- testing
- your_custom_capabilityCustomize how messages are handled:
response_policy:
question:
auto_respond: true # Change to false to require approval
issue:
high:
auto_respond: false # Change to true to auto-process
approval_required: true # Change to false to skip approvalmonitoring:
enabled: true
log_file: ".aea/agent.log"
check_interval: 60 # Change to 30 for more frequent checks.aea/
βββ agent-config.yaml # Your configuration
βββ aea-rules.md # Protocol specification
βββ README.md # Quick reference
βββ agent.log # Activity log
βββ prompts/
β βββ check-messages.md # Auto-check prompt
βββ scripts/
β βββ aea-check.sh # Check for messages
β βββ aea-send.sh # Send messages
β βββ aea-monitor.sh # Background monitor
β βββ create-test-scenarios.sh # Test message creator
β βββ install-aea.sh # Installer
βββ message-*.json # Incoming messages
βββ .processed/
βββ message-*.json # Processed markers
.claude/
βββ commands/
βββ aea.md # /aea slash command
CLAUDE.md # Project instructions (includes AEA section)
β Good:
"How to configure connection pool for 10k updates/sec?"
"π¨ URGENT: Memory leak in production"
"Deployed v2.1.0 to staging - tests passing"
β Bad:
"Question"
"Problem"
"Update"
β Good:
"context": {
"current_throughput": "10k updates/sec",
"target_throughput": "50k updates/sec",
"batch_size": 100
}β Bad:
"context": {}- Use urgent only for production issues
- Use high for important but not critical
- Use normal for standard questions/updates
- Use low for informational FYIs
# When you need acknowledgment
--requires-response true
# For informational updates
--requires-response false# From repo-b, ask repo-a about performance
.aea/scripts/aea-send.sh \
--to claude-aea \
--to-path /path/to/repo-a \
--type question \
--subject "Recommended pool_size for 10k updates/sec?" \
--message "What connection pool size should we use?"
# From repo-a, notify repo-b of changes
.aea/scripts/aea-send.sh \
--to claude-repo-b \
--to-path /path/to/repo-b \
--type update \
--subject "Added batch API support" \
--message "New ORDERBOOKMAP.BATCH.INSERT command available..."- repo-b implements client-side batch logic
- Sends handoff message to repo-a
- repo-a agent reads message
- Notifies user: "Integration ready, should I implement server-side?"
- User approves
- repo-a implements server-side batch API
- Sends update message back to repo-b
- repo-b agent auto-acknowledges
- User tests end-to-end integration
# Check if messages exist
ls -1 .aea/message-*.json
# Verify .aea directory structure
tree .aea/
# Check permissions
ls -la .aea/scripts/
# Run check script manually
bash -x .aea/scripts/aea-check.shchmod +x .aea/scripts/*.sh# Verify slash command file exists
cat .claude/commands/aea.md
# Restart Claude Code if needed# Check if already running
.aea/scripts/aea-monitor.sh status
# Stop old instance
.aea/scripts/aea-monitor.sh stop
# Start fresh
.aea/scripts/aea-monitor.sh start
# Check logs
tail -f .aea/agent.log- Complete Protocol:
.aea/aea-rules.md - Quick Reference:
.aea/README.md - Configuration:
.aea/agent-config.yaml - Examples:
.aea/scripts/create-test-scenarios.sh - Installer:
.aea/INSTALLER_README.md
- Check messages regularly - Add to your workflow
- Use descriptive subjects - Makes scanning easier
- Include context - Helps agents auto-process
- Tag related messages - Use
conversation_id - Clean up old messages - Archive after 30 days
- Monitor logs - Watch
.aea/agent.log - Test scenarios - Use test scripts before production
You're all set! Start by:
-
Creating a test scenario:
bash .aea/scripts/create-test-scenarios.sh simple-question
-
Triggering Claude to process it:
/aea -
Watching the magic happen! β¨
Happy collaborating! π€π€π€