3.6 KiB
pi-unigpt
Use uniGPT, the University of Graz's AI assistant, inside the pi coding agent.
Once set up, every model your uniGPT account offers appears in pi's model picker, including GPT-4o, GPT-4.1, and the GPT-5 and GPT-6 families. Tools, streaming responses, and image input all work.
What you need
- pi 1.3 or newer (installation guide)
- A uniGPT API key. If you don't have one, ask the uniGPT team at the IDea_Lab.
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 (the key itself stays valid) |
Updating
pi update --extensions
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 and let the uniGPT team know.
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.