explaingit

dairus01/x-agent

0TypeScriptAudience · developerComplexity · 3/5ActiveSetup · easy

TLDR

Self-hostable Next.js app that pairs an OpenRouter-backed research chat with live crypto prices, on-chain TVL, and clustered RSS narratives, with no database and no per-vendor API keys.

Mindmap

mindmap
  root((X-Agent))
    Inputs
      OpenRouter key
      CoinGecko prices
      DefiLlama TVL
      Public RSS feeds
    Outputs
      Streaming research chat
      Market dashboard
      Narrative clusters
      Watchlist tiles
    Use Cases
      Self-host crypto research
      Build a Perplexity-style UI
      Stream OpenRouter through SSE
    Tech Stack
      Next.js
      React
      TypeScript
      OpenRouter
      Node

Things people build with this

USE CASE 1

Self-host a Perplexity-style crypto research console with one API key

USE CASE 2

Stream OpenRouter chat completions through a Next.js SSE proxy

USE CASE 3

Cluster public RSS into a narrative dashboard without paid feeds

USE CASE 4

Deploy to Vercel, Fly, or Railway with no database

Tech stack

TypeScriptNext.jsReactOpenRouterNode

Getting it running

Difficulty · easy Time to first run · 5min

Needs only an OpenRouter API key in .env.local before npm run dev.

In plain English

X-Agent is a self-hostable web app for crypto research that the author calls a Perplexity for crypto with a Bloomberg-terminal feel. It lets you chat with an AI about coins, look at live prices, scan news narratives, and watch a list of tokens, all from a single Next.js application that you run yourself. The project is built around three hard rules. First, every call to a language model goes through OpenRouter, which is a service that gives you access to many AI models through one key, so you do not need separate accounts at OpenAI or Anthropic. Second, the app does not use the Twitter API, the Reddit API, or any paid data feeds, only public sources like RSS news feeds and the free APIs of CoinGecko (for prices) and DefiLlama (for on-chain value locked in protocols). Third, the README states that no data is faked, so if a number is not available from a public source, the UI hides that tile instead of showing made-up values. Setup is described as short. You clone the repo, run npm install, copy the example env file, paste in your OpenRouter API key, and run npm run dev to get it running on localhost. The same project deploys to Vercel, Fly, or Railway with that one environment variable set. There is no signup, no database, and no admin panel. Inside, it is a single Next.js 15 app. The browser talks to small server routes under the api folder, which in turn fetch from OpenRouter, CoinGecko, DefiLlama, and RSS feeds. Chat replies stream token by token, so text appears as the model produces it rather than all at once. The README is detailed and technical, with sections on architecture, caching, and how to extend the app.

Copy-paste prompts

Prompt 1
Help me add a new tile that pulls Ethereum gas prices from a public endpoint following the X-Agent no-fake-data rule.
Prompt 2
Walk me through the SSE pass-through in /api/chat and where I would add a token usage logger.
Prompt 3
Show me how to swap the default Gemini model for a Claude model via the OPENROUTER_MODEL env var.
Prompt 4
Add a per-IP rate limiter to the route handlers without introducing a database.
Prompt 5
Extend the narratives clusterer to support a custom RSS feed list loaded from disk.
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.