For AI · CrewAI

Read X (Twitter) content from CrewAI agents

Hand your research agents a clean Markdown reader for X. No scraping, no rate limits, no X API key — your agents talk to xmd; xmd talks to X.

The CrewAI agent reading problem

CrewAI agents work best when their tools return predictable, structured strings. Pointing an agent at a raw x.com URL is unreliable: the page renders client-side, serves a login wall to anonymous fetchers, and changes structure often. Even when you wire up a generic web-scraping tool, the agent ends up reasoning over login prompts and recommendation modules instead of the actual post.

xmd resolves the post once, server-side, and returns a Markdown string. That string is what your agent reads — short for tweets, well-structured for threads, full prose for long-form articles.

Pattern today: paste into the task description

The web converter ships. The HTTP API does not yet. Until it does, the practical CrewAI pattern is:

  1. Convert the X URL at xmdbot.com.
  2. Copy the Markdown.
  3. Paste it into the agent's task description or expected_output as context.

Useful for one-off research jobs ("read this thread, write a counter-argument essay") or for seeding a research Crew with a curated reading list at process start.

Pattern tomorrow: a CrewAI Tool wrapper

When the xmd HTTP API ships, wrap it as a Tool. CrewAI's contract is simple — any callable that takes typed inputs and returns a string qualifies. The shape will look like:

from crewai.tools import BaseTool
import requests

class XReader(BaseTool):
    name: str = "x_reader"
    description: str = "Read an X (Twitter) URL and return clean Markdown."

    def _run(self, url: str) -> str:
        # When the xmd API ships, this becomes a single HTTP call.
        # Returns Markdown the agent can reason over directly.
        ...

Drop the tool onto a research agent's tools list and any task that mentions an X URL becomes one the agent can actually read.

Multi-agent flow ideas

  • Researcher → Writer. Researcher agent fetches X content via xmd; Writer agent turns it into a blog post or LinkedIn post.
  • Curator → Summariser → Publisher. Curator picks 5 X URLs from a list; Summariser converts each via xmd and produces a digest; Publisher posts the digest.
  • Fact-check Crew. Reader agent ingests an X article via xmd; Verifier agent cross-references claims; Reporter agent writes the fact-check note.

Get notified when the API ships

Frequently asked questions

How do I read X content from a CrewAI agent today?

Convert the URL at xmdbot.com, copy the Markdown, paste it into the agent's task description or backstory. The Markdown is short, clean, and readable — your agent reads it as a normal text input. This is the manual workflow until the HTTP API ships.

When can I wrap xmd as a CrewAI Tool?

As soon as the xmd HTTP API ships. The pattern will be standard: subclass CrewAI's BaseTool (or use the @tool decorator), call the xmd endpoint inside _run, return the Markdown string. Join the API waitlist on this page to get notified.

Will it work with the @tool decorator and BaseTool?

Yes — both are just thin wrappers over a callable that takes a URL and returns a string. The xmd HTTP response is a Markdown string, which is exactly what CrewAI's tool contract expects. No special integration is needed.

Can I share converted X content across multiple CrewAI agents?

Yes. CrewAI's task outputs and shared context propagate between agents in a Crew. Convert once at the start of the Crew (or in a dedicated 'researcher' agent), then pass the Markdown forward to writer, reviewer, or summariser agents through their task descriptions.

Will my agents hit X rate limits?

Not when going through xmd. The agents call xmd, xmd handles the X interaction server-side. Your CrewAI process never talks to x.com directly, so you do not need cookies, an X API key, or backoff logic in your agent code.


Try the manual flow now — paste an X URL into xmd, copy the Markdown, drop it into your CrewAI task. Same input format your agents will get when the Tool wrapper ships.