@monroewilliams/pi-local
Pi extension for configuring multiple local LLM inference engine connections.
Package details
Install @monroewilliams/pi-local from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@monroewilliams/pi-local- Package
@monroewilliams/pi-local- Version
0.1.2- Published
- Jun 10, 2026
- Downloads
- not available
- Author
- monroewilliams
- License
- MIT
- Types
- extension
- Size
- 32.8 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-local
A Pi extension for configuring and switching between multiple local LLM inference engine connections.
Features
- Multiple connections — configure several local inference servers (LM Studio, oMLX, llama.cpp, etc.) and switch between them
- Auto-detection — queries connected endpoints for available models with rich metadata (size, context window, type)
- Model loading — load/unload models on servers that support it (oMLX, LM Studio)
- Persistence — your default provider and model are restored automatically on Pi restart
- macOS keychain — offers to store API keys in the macOS keychain via
securitycommands - Reasoning support — discovers and passes through reasoning capabilities from models that advertise them
Supported backends
| Backend | Detection | Load/Unload |
|---|---|---|
| oMLX | /v1/models/status + /api/status |
Yes |
| LM Studio | /api/v1/models |
Yes |
| OpenAI-compatible | /v1/models |
No |
The extension tries oMLX first, then LM Studio, then falls back to OpenAI-compatible.
Commands
/local-login
Add or remove connections. Each connection is identified by its base URL.
Manage Connections
> Remove: http://127.0.0.1:1234
Add new connection
Done
On macOS, if you enter a direct API key, you have the option to store it in the keychain. The key is then referenced via a !security command.
/local-model
Select a connection and model. Shows server stats (for oMLX), model size, context window, and model type.
Installation
You can either install this directly with the pi command via npm:
pi install npm:@monroewilliams/pi-local
or check out this repository and add the extension to your Pi configuration in ~/.pi/agent/settings.json (useful if you want to modify it to better suit your purposes):
{
"extensions": [
"/path/to/pi-local"
]
}
Then reload Pi (/reload) and run /local-login to add your first connection.
API key formats
The API key field accepts all Pi auth key formats:
| Format | Example | Description |
|---|---|---|
| Direct key | sk-1234567890abcdef |
Stored as-is |
| Environment variable | $MY_API_KEY or ${MY_API_KEY} |
Resolved via resolveConfigValue |
| Shell command | !security find-generic-password -s 'pi-local' -a 'http://...' -w |
Shell execution, stdout used |
| Empty | (leave blank) | No authentication |
On macOS, direct keys are optionally stored on the keychain.
Storage
- Connections — stored in
~/.pi/agent/auth.jsonkeyed by base URL - Default provider/model — stored in
~/.pi/agent/settings.json(defaultProvider/defaultModel) - Model metadata — cached alongside the connection in auth.json (contextWindow, maxTokens, reasoning)
Development
npm install
npm run typecheck # TypeScript check
npm run check # Biome + TypeScript + tests
npm run format # Auto-format
License
MIT