3.9 KiB
pi-unigpt
Use uniGPT, the University of Graz's AI assistant, inside the pi coding agent.
Models exposed by your uniGPT API key appear in pi's model picker. Streaming and tool calls are supported; recognized vision models also support image input.
What you need
- pi 1.3 or newer (installation guide)
- A uniGPT API key
Setup
1. Install the extension
pi install git:imsc.uni-graz.at/git/behackl/pi-unigpt
2. Log in
Start pi (or type /reload if it is already running), then type:
/login unigpt
A dialog asks for your API key. Paste it there, not into the chat. Pi checks the key and tells you how many models you can use.
3. Pick a model
Type /model and choose one of the models listed under unigpt.
That's it. Pi remembers your key and your last model for next time.
Optional: start pi with uniGPT by default. Add this to
~/.pi/agent/settings.json, using any model from the list:
{
"defaultProvider": "unigpt",
"defaultModel": "gpt-5.4"
}
Commands
| Command | What it does |
|---|---|
/login unigpt |
Save your API key (or replace it with a new one) |
/model |
Choose a model |
/unigpt-refresh |
Reload the list of models, e.g. after uniGPT adds new ones |
/logout |
Remove your key from pi |
Updating
pi update --extensions
Logging out and uninstalling
To remove your API key, type /logout and choose uniGPT. The uniGPT
models disappear from /model until you log in again. This only removes the
key from pi; it does not revoke the key at uniGPT.
To uninstall the extension, log out first (uninstalling does not delete the saved key), then run:
pi remove git:imsc.uni-graz.at/git/behackl/pi-unigpt
If you made uniGPT your default, also remove defaultProvider and
defaultModel from ~/.pi/agent/settings.json.
Things to know
- The thinking level setting has no effect. uniGPT decides how much each model reasons; models that reason still do so.
- Costs are shown as zero. Pi doesn't track uniGPT usage; this does not mean usage is unlimited. Your university's usage rules still apply.
Troubleshooting
- No uniGPT models in
/model: type/unigpt-refresh. It tells you what is wrong, e.g. a rejected key or no network connection. - One model always fails with an error: that model may be unavailable on uniGPT's side. Pick another one.
pi -p "…"says a uniGPT model was not found: start pi normally once after logging in, so it can load the model list.- Installation fails with
spawn npm ENOENT: you use pnpm instead of npm. Add"npmCommand": ["pnpm"]to~/.pi/agent/settings.jsonand try again.
Still stuck? Open an issue
with the output of /unigpt-refresh and the model you used. Never include
your API key.
Advanced
Storing the key elsewhere. Pi saves your key unencrypted in
~/.pi/agent/auth.json, readable only by your user account. To keep it out
of that file, change the unigpt entry there to read it from an environment
variable or a password manager command:
{ "unigpt": { "type": "api_key", "key": "${UNIGPT_API_KEY}" } }
{ "unigpt": { "type": "api_key", "key": "!op read op://Private/uniGPT/credential" } }
Adjusting model limits. Pi knows the context size and output limit of
common models. For a model it doesn't recognize, it assumes 128k tokens of
context and 16k of output. If you know better, override them in
~/.pi/agent/models.json:
{ "providers": { "unigpt": { "modelOverrides": { "gpt-5.4": { "contextWindow": 200000 } } } } }
Pinning a version. To stay on one release, install with its tag, e.g.
pi install git:imsc.uni-graz.at/git/behackl/pi-unigpt@v0.1.0.
Contributing
See DEVELOPMENT.md.