2026-02-24 05:55:21 +00:00
2026-02-24 05:55:21 +00:00
2026-02-24 05:55:21 +00:00
2026-02-24 05:55:21 +00:00
2026-02-24 05:55:21 +00:00
2026-02-24 05:55:21 +00:00
2026-02-24 05:55:21 +00:00

routstrd

Routstr daemon - A CLI tool for managing routstr processes, similar to cocod (a Cashu wallet daemon).

Overview

routstrd is a Bun-based CLI tool that provides a background daemon for the Routstr protocol. It integrates with cocod for wallet management and uses the Routstr SDK to handle provider routing and model discovery.

Features

  • Daemon Mode: Run routstrd as a background HTTP server
  • Wallet Integration: Works with cocod for Cashu token management
  • Provider Routing: Automatically discovers and routes requests to available providers
  • Config Management: Stores configuration in ~/.routstrd/

Requirements

  • Bun runtime
  • cocod (Cashu wallet daemon)

Installation

From Source

cd routstrd
bun install

Global Installation

Link the package for global CLI access:

cd routstrd
bun link

Or install globally from the local path:

bun install -g /path/to/routstrd

Usage

Initialize

Initialize routstrd (creates config directory and sets up cocod):

routstrd init

This will:

  • Create ~/.routstrd/ directory
  • Create config file at ~/.routstrd/config.json
  • Run cocod init to set up the wallet

Start Daemon

Start the background daemon:

routstrd daemon

With custom port:

routstrd daemon --port 9000

With specific provider:

routstrd daemon --provider https://your-provider.com

CLI Commands

Check daemon status:

routstrd status

Get wallet balance:

routstrd balance

Test connection:

routstrd ping

Stop the daemon:

routstrd stop

Daemon API

The daemon exposes an HTTP server (default port 8008) with the following endpoints:

Health Check

GET /health

Route Request

POST /

Request body:

{
  "model": "model-id",
  "messages": [...],
  "stream": false
}

Response:

{
  "choices": [...],
  "usage": {...}
}

Configuration

Configuration is stored in ~/.routstrd/config.json:

{
  "port": 8008,
  "provider": null,
  "cocodPath": null
}

Environment Variables

  • ROUTSTRD_DIR - Config directory (default: ~/.routstrd)
  • ROUTSTRD_SOCKET - Socket path (default: ~/.routstrd/routstrd.sock)
  • ROUTSTRD_PID - PID file path (default: ~/.routstrd/routstrd.pid)

Development

Install dependencies:

bun install

Run CLI:

bun run start

Run daemon:

bun run daemon

Typecheck:

bun run lint

Project Structure

routstrd/
├── src/
│   ├── index.ts       # Entry point with shebang
│   ├── cli.ts         # Commander CLI commands
│   ├── cli-shared.ts  # IPC utilities
│   ├── daemon.ts      # HTTP server daemon
│   └── utils/
│       └── config.ts  # Path configuration
├── package.json
└── tsconfig.json

License

MIT

Description
A Routstr daemon that runs locally to route you to the best Routstr provider from all available Routstr nodes.
Readme 849 KiB
Languages
TypeScript 99.5%
Shell 0.4%