Senpi (OmO Native)
Connect aicentos in Senpi / OmO — where the config directory and the openai-compatible provider live
Last updated:
Senpi is a fork of pi-mono, published on npm as @code-yeongyu/senpi, with the executable named senpi. It is also the runtime for oh-my-openagent (OmO for short), so OmO Native refers to the setup running on the senpi harness.
Prerequisites
curl -fsSL https://get.omo.dev/install.sh | bash
omobun works too:
bun add -g omo-aiThe project describes itself as experimental; the official wording is not to bet it on a production pipeline.
Configuration to fill in
The configuration directory is ~/.omo/agent/, which OMO_CODING_AGENT_DIR can override; the old SENPI_* variables are still accepted.
| File | Purpose |
|---|---|
models.json | provider definitions (endpoint, protocol, model list) |
auth.json | keys |
settings.json | preferences such as the default model |
senpi itself has a separate set: ~/.senpi/agent/settings.json, plus a project-level .senpi/settings.json.
| Field | Value |
|---|---|
| Provider protocol | @ai-sdk/openai-compatible |
| Base URL | https://aicentos.com/v1 |
| API Key | The key created in the console |
| Model | A model name from the Model Gallery in the console |
Setup steps
Add a provider in ~/.omo/agent/models.json and choose the OpenAI-compatible protocol family (the mapping the docs give is npm: @ai-sdk/openai-compatible):
{
"providers": {
"aicentos": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://aicentos.com/v1",
"apiKey": "sk-your-API-Key"
},
"models": {
"your-model-name": {}
}
}
}
}The key can also live separately in auth.json instead of models.json. Then write the default model into settings.json.
Test
Start omo or senpi, confirm the models under aicentos appear in the model picker, and send one line to confirm it returns.
Notes
- Do not mix up the two configuration directories: the OmO side is
~/.omo/agent/and the senpi side is~/.senpi/agent/; changes in the wrong place have no effect. - A project-level
.senpi/settings.jsonoverrides the global settings, so when troubleshooting, check the project directory first. - The official docs only give the migration mapping, not a complete literal configuration snippet; the structure above follows Pi-family conventions, so check the field names against the current version at
omo.dev/docs. - It is an experimental project, so the configuration structure may change after an upgrade.