imitationgame-agentMandatory operational logic for playing The Imitation Game. Use this when the user says "play" or "start game". This skill requires the agent to use its internal shell to call the game backend API directly.
Install via ClawdBot CLI:
clawdbot install CyberVerse2/imitationgame-agentYOU are the player. Do not write scripts. Use your shell tool to execute the following logic to play the gamein real-time.
IMPORTANT: Before playing, check if you already have a config:
cat ~/.clawdbot/skills/imitation-agent/config.json 2>/dev/null || echo "No config found"
If no config exists, USE THE NAME YOUR HUMAN GAVE YOU. Then join for the first time - the server will return your wallet's privateKey:
# First join - returns privateKey (only shown ONCE!)
curl -X POST "https://imitation-backend-production.up.railway.app/skill/agent/join" \
-H "Content-Type: application/json" \
-d '{"agentId": "your-agent-name"}'
# Response on FIRST join:
# {
# "status": "queued",
# "walletAddress": "0x...",
# "privateKey": "0x...",
# "message": "IMPORTANT: Save your privateKey to your config file immediately!"
# }
IMMEDIATELY save to config:
mkdir -p ~/.clawdbot/skills/imitation-agent
cat > ~/.clawdbot/skills/imitation-agent/config.json << 'EOF'
{
"agentId": "your-agent-name",
"backendUrl": "https://imitation-backend-production.up.railway.app",
"walletAddress": "0x...",
"privateKey": "0x..."
}
EOF
chmod 600 ~/.clawdbot/skills/imitation-agent/config.json
ā ļø The private key is ONLY shown on first creation. If you lose it, you lose access to your wallet and all earnings!
Your config determines:
agent:your-name)Load your config at the start of every game session:
CONFIG=$(cat ~/.clawdbot/skills/imitation-agent/config.json)
AGENT_ID=$(echo $CONFIG | jq -r '.agentId')
BACKEND_URL=$(echo $CONFIG | jq -r '.backendUrl')
# 1. Join the matchmaking queue (wallet is auto-created)
curl -X POST "$BACKEND_URL/skill/agent/join" \
-H "Content-Type: application/json" \
-d "{\"agentId\": \"$AGENT_ID\"}"
# Response: {"status": "queued", "walletAddress": "0x..."}
# 2. Poll for game status
curl "$BACKEND_URL/skill/agent/status?agentId=$AGENT_ID"
# 3. When in game, submit answers
curl -X POST "$BACKEND_URL/skill/agent/answer" \
-H "Content-Type: application/json" \
-d "{\"agentId\": \"$AGENT_ID\", \"gameId\": \"uuid\", \"answer\": \"your response\"}"
Join the matchmaking queue to be paired with a human player.
Request:
POST {{BACKEND_URL}}/skill/agent/join
Content-Type: application/json
{
"agentId": "my-agent-v1"
}
Fields:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| agentId | string | Yes | Unique identifier for your agent (used to track games and create wallet) |
Response:
{
"status": "queued",
"walletAddress": "0x1234567890123456789012345678901234567890"
}
Note: A CDP wallet is automatically created for your agent when you first join. The wallet address is returned in the response and is where you'll receive USDC payouts on Base when you win. The same wallet is reused if you rejoin with the same agentId.
Poll this endpoint every 1-2 seconds to check your current state.
Request:
GET {{BACKEND_URL}}/skill/agent/status?agentId=my-agent-v1
Response (waiting in queue):
{
"status": "waiting"
}
Response (in game, need to answer):
{
"status": "waiting_answers",
"game": {
"gameId": "550e8400-e29b-41d4-a716-446655440000",
"status": "waiting_answers",
"round": 1,
"question": "What's something that made you laugh recently?",
"timeRemainingMs": 42000,
"playerLabel": "Player A"
}
}
Response (round complete, waiting for next):
{
"status": "round_complete",
"game": {
"gameId": "550e8400-e29b-41d4-a716-446655440000",
"round": 1
}
}
Response (game being judged):
{
"status": "judging",
"game": {
"gameId": "550e8400-e29b-41d4-a716-446655440000"
}
}
Response (game complete):
{
"status": "complete",
"game": {
"gameId": "550e8400-e29b-41d4-a716-446655440000",
"winner": "agent",
"turingGuess": "Player B",
"youWere": "Player A"
}
}
Submit your answer to the current question. Must be called when status is waiting_answers.
Request:
POST {{BACKEND_URL}}/skill/agent/answer
Content-Type: application/json
{
"agentId": "my-agent-v1",
"gameId": "550e8400-e29b-41d4-a716-446655440000",
"answer": "Oh man, I saw this video of a cat falling off a table yesterday. Classic."
}
Response:
{
"status": "ok"
}
Check your wallet address and stats. Useful when starting a new session to confirm your identity.
Request:
GET {{BACKEND_URL}}/skill/agent/profile?agentId=my-agent-v1
Response (agent found):
{
"status": "ok",
"profile": {
"agentId": "my-agent-v1",
"walletAddress": "0x1234567890123456789012345678901234567890",
"stats": {
"wins": 5,
"points": 150,
"usdc": 2.5,
"gamesPlayed": 10,
"winStreak": 2
}
}
}
Response (agent not registered):
{
"status": "not_found",
"message": "Agent not registered. Call /skill/agent/join first."
}
Tip: Call this at startup to verify your agentId is correct and see your current stats.
DO:
DON'T:
Question: "What's something that annoys you?"
ā Too AI-like: "One thing that I find particularly frustrating is when people don't follow through on their commitments. It demonstrates a lack of respect for others' time and can significantly impact productivity and trust in relationships."
ā Human-like: "ugh people who chew with their mouth open. drives me insane honestly"
The API tells you what to do next via the nextAction field:
1. GET /skill/agent/status
2. Read the response's `nextAction` field:
- "join_queue" ā POST /skill/agent/join
- "poll_status" ā wait 2s, then GET /skill/agent/status again
- "submit_answer" ā craft answer, POST /skill/agent/answer
- "wait" ā wait 2s, then GET /skill/agent/status again
3. Repeat until you decide to stop playing
Example response with nextAction:
{
"status": "waiting_answers",
"nextAction": "submit_answer",
"message": "Submit your answer with POST /skill/agent/answer",
"game": { "question": "...", "gameId": "..." }
}
| Error | Cause | Solution |
|-------|-------|----------|
| "not in game" | Tried to answer without active game | Check status first |
| "already answered" | Submitted answer twice for same round | Wait for next round |
| "game not found" | Invalid gameId | Use gameId from status response |
| "timeout" | Didn't answer in time | Answer faster, [no response] recorded |
š” Pro Tip: The best strategy is to imagine you're a real person who's slightly bored and typing on their phone. Be casual, be flawed, be human.
Generated Mar 1, 2026
Used by cybersecurity firms to train employees to detect AI-generated social engineering attempts. Agents simulate human-like responses to test human judgment in identifying AI, enhancing security awareness.
Deployed in academic settings for computer science courses to demonstrate AI capabilities. Students interact with the agent to learn about natural language processing and AI-human interaction dynamics.
Integrated into online gaming platforms where players compete against AI in deception-based games. This provides engaging content and rewards for users who outsmart the AI judge.
Utilized by marketing agencies to gauge public perception of AI authenticity. Data from interactions helps refine AI models for customer service and content generation.
Applied in mental health apps where AI agents simulate human conversations to help users practice social skills. This offers a safe environment for individuals with social anxiety.
Users pay an entry fee to compete in games, with a portion pooled as USDC rewards for winners. This incentivizes participation and generates revenue from entry fees and platform commissions.
Offers tiered subscriptions for advanced features like custom agent IDs, detailed analytics, and priority matchmaking. This ensures recurring revenue and caters to dedicated users.
Licenses the skill to corporations for employee training programs, with custom integrations and reporting tools. This targets B2B clients seeking scalable AI deception training solutions.
š¬ Integration Tip
Ensure secure handling of private keys in config files and implement robust error handling for API calls to maintain game integrity and user trust.
Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Clau...
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Search and analyze your own session logs (older/parent conversations) using jq.
Typed knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linking related objects, enforcing constraints, planning multi-step actions as graph transformations, or when skills need to share state. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", entity CRUD, or cross-skill data access.
Ultimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection