Agent infrastructure for Robinhood Chain

The registry for
AI agents.

Publish an agent, install the tools it depends on, run it locally under a supervisor, and read normalized Robinhood Chain market and on-chain data — through one API, one CLI, and one SDK.

norien
$ norien search trading  trading-agent   0.5.0   python$ norien install trading-agent  ✓ resolved 4 tools · wrote ./norien_agents$ norien run trading-agent  ✓ running · pid 24180 · healthy

How it works

The same four steps whether you are running one agent locally or a catalogue of them.

  1. 1

    Describe the agent

    An agent.json declares its runtime, entrypoint, commands, required tools, permissions, and environment.

  2. 2

    Publish it

    The registry validates the manifest, resolves every declared tool, and records an immutable version.

  3. 3

    Install anywhere

    Installing writes the manifest, a resolved tool list, and an .env.example — the way node_modules works.

  4. 4

    Run it

    The supervisor detects the runtime, injects tools and environment, and keeps the process healthy.

Command line

Built for the terminal first

Every command supports --json, and stdout stays pure JSON while spinners and diagnostics go to stderr — so the CLI composes with jq and CI without special-casing.

  • Publish, search, install, update, and uninstall
  • Run, stop, restart, tail logs, and check status
  • Market data: markets, trending, token, wallet, contract, project
  • norien doctor diagnoses the API, manifest, runtimes, and config
markets
$ norien markets --limit 3  SYMBOL  PRICE      24H      VOLUME   HOLDERS  USDG    $1.0011    +0.14%   $85.69M   31,967  WETH    $1944.81   +0.81%   $85.69M  254,872$ norien doctor  ✓ registry  http://localhost:3000 — ok
Registry

Versions that never move

Every publish writes an immutable version row alongside a mutable head. A pinned install resolves to exactly what was published, and a deleted slug stays reserved so it can never be taken over.

Browse the registry
Manifest validation
Structure, semver, slug rules, and tool resolution before anything is stored.
Ranked search
Postgres full-text with generated tsvector columns and ts_rank ordering.
Dependency resolution
Declared tools resolve to real records; unresolvable names are reported, not ignored.
Runtime inspection
Ask whether an agent could run here before installing it.
supervisor
$ norien run research-agent  ✓ node detected · 3 tools injected  ✓ running · pid 24180$ norien logs research-agent -f  [12:04:01] ready on :7070  [12:04:12] health ok
Runtime

Docker, npm, and systemd — for agents

A supervisor process separate from the registry, because a shared catalogue must never execute user code. It detects the runtime, validates permissions, injects tools and environment, and recovers crashes with a loop cap so a failing agent cannot spin forever.

View runtime status

Tools are plugins, not special cases

A tool declares its input and output schema, its runtime, its permissions, and the environment it needs. The runtime speaks one protocol to all of them — JSON on stdin, JSON on stdout — so nothing about a tool is hardcoded.

node · python · http

Three runtimes behind one contract. An http tool proxies to a URL with placeholder substitution; the caller cannot tell the difference.

Schema-checked

Input and output are JSON Schema, stored verbatim — which is also what makes them MCP compatible later.

Seventeen categories

Search, data, wallet, social, media, notifications, storage, and more.

Explore the marketplace
Unified API

Six providers, one shape

Market data, on-chain state, repository health, and TVL are normalized behind a single surface. Responses carry their own provenance, so a partial answer is visibly partial instead of quietly incomplete.

  • GET /api/tokens
  • GET /api/token/:address
  • GET /api/wallets/:address
  • GET /api/contracts/:address
  • GET /api/projects
  • GET /api/search
{
  "data": {
    "symbol": "USDG",
    "price": 1.0002,
    "holders": 31579
  },
  "sources": [
    { "provider": "market-data",   "status": "ok" },
    { "provider": "chain-explorer", "status": "ok" }
  ],
  "degraded": false
}

Start with the docs

The manifest format, the REST surface, the CLI reference, and the SDKs — everything needed to publish your first agent.

Or jump straight into the app.