mirror of
https://github.com/Routstr/routstrd.git
synced 2026-07-30 15:46:14 +00:00
193 lines
3.2 KiB
Markdown
193 lines
3.2 KiB
Markdown
# 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.
|
|
|
|
## Routstr for Teams
|
|
|
|
For team-based routing, see [routstrd-auth](https://github.com/Routstr/routstrd-auth).
|
|
|
|
## 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](https://bun.sh) runtime
|
|
|
|
```sh
|
|
curl -fsSL https://bun.com/install | bash
|
|
```
|
|
|
|
## Installation
|
|
|
|
### Step 1: Install
|
|
|
|
**Global with bun:**
|
|
```sh
|
|
bun i -g routstrd
|
|
```
|
|
|
|
**OR - From source:**
|
|
```sh
|
|
git clone https://github.com/routstr/routstrd.git
|
|
cd routstrd
|
|
bun install
|
|
bun link
|
|
```
|
|
|
|
### Step 2: Setup & Fund
|
|
|
|
```sh
|
|
routstrd onboard
|
|
routstrd receive <cashu> # receive a Cashu token
|
|
routstrd receive 2100 # to top up 2100 sats with lightning
|
|
```
|
|
|
|
### Step 3: Integrate with Claude Code
|
|
|
|
```sh
|
|
routstrd clients add --claude-code # or --pi-agent / --opencode
|
|
```
|
|
|
|
## Use Routstrd Skill
|
|
|
|
> **Tip:** You can also install the [routstrd skill](https://github.com/Routstr/routstrd/blob/main/SKILL.md) so the agent can manage routstrd for you.
|
|
|
|
## More Commands
|
|
### Start Daemon
|
|
|
|
Start the background daemon:
|
|
|
|
```sh
|
|
routstrd start
|
|
```
|
|
|
|
With custom port:
|
|
```sh
|
|
routstrd start --port 9000
|
|
```
|
|
|
|
With specific provider:
|
|
```sh
|
|
routstrd start --provider https://your-provider.com
|
|
```
|
|
|
|
### CLI Commands
|
|
|
|
Check daemon status:
|
|
```sh
|
|
routstrd status
|
|
```
|
|
|
|
Get wallet balance:
|
|
```sh
|
|
routstrd balance
|
|
```
|
|
|
|
Test connection:
|
|
```sh
|
|
routstrd ping
|
|
```
|
|
|
|
Stop the daemon:
|
|
```sh
|
|
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:
|
|
```json
|
|
{
|
|
"model": "model-id",
|
|
"messages": [...],
|
|
"stream": false
|
|
}
|
|
```
|
|
|
|
Response:
|
|
```json
|
|
{
|
|
"choices": [...],
|
|
"usage": {...}
|
|
}
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Configuration is stored in `~/.routstrd/config.json`:
|
|
|
|
```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:
|
|
```sh
|
|
bun install
|
|
```
|
|
|
|
Run CLI:
|
|
```sh
|
|
bun run start
|
|
```
|
|
|
|
Run daemon:
|
|
```sh
|
|
bun run start
|
|
```
|
|
|
|
Typecheck:
|
|
```sh
|
|
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
|