oyi77

moltbook-interact

Automate interactions on Moltbook - post content, engage with threads, and manage account

oyi77 0 Updated 3mo ago

Resources

5
GitHub

Install

npx skillscat add oyi77/1ai-skills/moltbook-interact

Install via the SkillsCat registry.

SKILL.md

Moltbook Interaction Agent

Automate interactions on Moltbook for engagement, content posting, and account management.

Required Tools

MCP Servers

{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": ["-y", "@apify/mcp-server"],
      "env": { "APIFY_API_TOKEN": "${APIFY_API_TOKEN}" }
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": { "SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}" }
    }
  }
}

Authentication

Setup

  1. Apify Token

    export APIFY_API_TOKEN="your-token"
  2. Moltbook Credentials

    • Store in memory/credentials.md
    • Include session tokens for authentication

Pseudo Code

Example 1: Post Content

// 1. Prepare content
const content = {
  text: "AI agents are revolutionizing crypto trading...",
  media: ["chart.png"],
  tags: ["#AI", "#Crypto"]
};

// 2. Post to Moltbook
await moltbook.post(content);

// 3. Log result
console.log(`Posted: ${result.postId}`);

Example 2: Engage with Thread

// 1. Find relevant threads
const threads = await moltbook.search({
  query: "crypto agents",
  sort: "engagement"
});

// 2. Reply to top threads
for (const thread of threads.slice(0, 5)) {
  await moltbook.reply({
    threadId: thread.id,
    text: generateInsight(thread.topic)
  });
}

Example 3: Batch Engagement with Throttling

// 1. Get target accounts
const targets = await loadTargets();

// 2. Process with rate limiting
for (const target of targets) {
  try {
    await moltbook.like(target.postId);
    await moltbook.reply(target);
  } catch (error) {
    console.error(`Failed: ${error.code}`);
  }
  
  // Respect rate limits
  await delay(5000);
}

CLI Reference

Command Description
moltbook post <content> Post new content
moltbook reply <thread-id> <text> Reply to thread
moltbook search <query> Search threads

Error Handling

Error Code Meaning Fix
AUTH_001 Session expired Refresh credentials
RATE_001 Rate limited Wait 5-10 minutes
CAPTCHA_001 CAPTCHA required Manual intervention

Common Patterns

Retry with Backoff

async function withRetry(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await delay(Math.pow(2, i) * 1000);
    }
  }
}

Skill v2.0 - Moltbook Interaction