rec is our custom inference engine for running Recursive's language
models
locally on your machine. It provides lightning-fast inference for
single-session usage. Compared to llama.cpp, rec delivers 1.4–2.6× the
token throughput across the context lengths shown below on M4 Pro. Use it
with pi, OpenCode, or connect your own client through the local API.
Flint on Apple M4 Pro (48 GB), 4-bit weights, 1K–252K-token prompts and 1,024 output tokens. Five runs per context; prefill excluded.
- Apple Silicon Mac with an M4 Pro, M5 Pro, or M5 Max
- At least 48 GB unified memory
- About 30 GB free disk space
- Node.js 22 and npm for pi
Install using:
curl -fsSL https://raw.githubusercontent.com/recursive-oss/rec/main/install.sh | bashThis installs rec in ~/.local/bin and adds it to your PATH for new
terminals. All other data lives under ~/.local/share/rec.
We find the best performance from our models when paired with the pi harness. For convenience, rec provides pre-configured recipes for running pi and OpenCode harnesses. Run them using:
rec launch pi # preferred
rec launch opencode⚠️ rec is optimized for single-session usage. To run multiple agents at a time, see our documentation for other ways to run our models.
This starts our inference server and connects to it automatically. The first
run downloads the model and harness. The model server continues to run after
you close the terminal. Run rec stop to stop it.
These harnesses are kept separate from anything on your system. Use
rec exec pi|opencode ARGS to run their own commands, for example:
rec exec pi install npm:PACKAGErec exposes OpenAI and Anthropic-compatible chat-completion APIs.
Start the server:
rec serveKeep this terminal open. When flint is ready. appears, connect a client from
another terminal.
To use your own install of pi or OpenCode, run:
rec launch --args pi
rec launch --args opencodeEach command prints the environment and command line that rec launch uses,
instead of running it. Replace the harness path with the path to your own
harness. The command also points the harness at rec's own settings and
sessions; remove those variables to keep yours.
To send a request directly to the OpenAI-compatible API:
curl -fsS http://127.0.0.1:11500/v1/chat/completions \
-H "Authorization: Bearer $(rec auth token)" \
-H 'Content-Type: application/json' \
-d '{"model":"flint","messages":[{"role":"user","content":"Say hello."}],"max_tokens":128}'The response contains generated text in choices. For other clients, use
base URL http://127.0.0.1:11500/v1, model flint, and the API key from
rec auth token.
The Anthropic-compatible API is available at
http://127.0.0.1:11500/v1/messages. Point ANTHROPIC_BASE_URL at
http://127.0.0.1:11500 and send the token from rec auth token as a bearer
token or as x-api-key. The model is flint.
| Command | What it does |
|---|---|
rec launch pi|opencode |
Start the server if needed and open a harness |
rec exec pi|opencode ARGS |
Run a harness command, such as installing a plugin |
rec serve |
Start the model server in this terminal |
rec status |
Show whether the server is running |
rec stop |
Stop the server |
rec auth token |
Print the local API key |
rec pull |
Download the model without starting the server |
rec doctor |
Check your hardware and installation |
rec update |
Update rec to the latest release |
rec uninstall |
Remove rec, its models and its settings |
Run rec COMMAND --help for a command's options.
- Questions, bugs, and feature requests: GitHub Issues.
- Contribution guide and local checks: CONTRIBUTING.md.
- Community guidelines: Code of conduct.
- Security vulnerabilities: Private reporting instructions.
- License: Apache 2.0.