pi with SeibertGPT
Lean coding agent for the terminal with a very small system prompt.
1. Prerequisites
You need a SeibertGPT plan and an API key. You get both after signing in.
2. Download for Windows
- First install Node.js and Git for Windows.
- Then in PowerShell: npm install -g --ignore-scripts @earendil-works/pi-coding-agent
3. Set up
Paste the command into the PowerShell window. The script asks for your key, stores it securely on your computer and sets up the config. The key is only sent to the SeibertGPT API at https://api.seibert.ai/v1.
irm "https://gpt.seibert.ai/en/clients/pi/setup.ps1" | iexStore the key
Run this in PowerShell and paste the key when asked:
$secure = Read-Host -AsSecureString 'SeibertGPT API key (starts with sgpt_)'; $bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure); try { $key = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr).Trim() } finally { [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) }; if ($key.StartsWith('sgpt_')) { [Environment]::SetEnvironmentVariable("SEIBERTGPT_API_KEY", $key, "User") } else { Write-Host 'Not a SeibertGPT key (keys start with sgpt_), nothing saved.' }Store the config file
Download models.json and put it in the folder shown (existing file: copy over only the “seibertgpt” block).
Start
Open a new terminal and start with: pi --model seibertgpt/deepseek-v41-flash-fast
File: %USERPROFILE%\.pi\agent\models.json · Download models.json
Important: if models.json already exists, don't replace it. The file also contains your other settings; copy over only our entries.
{
"providers": {
"seibertgpt": {
"baseUrl": "https://api.seibert.ai/v1",
"api": "openai-completions",
"apiKey": "$SEIBERTGPT_API_KEY",
"compat": {
"supportsStore": false,
"supportsDeveloperRole": false,
"maxTokensField": "max_tokens"
},
"models": [
{
"id": "deepseek-v41-flash",
"name": "Standard with thinking (SeibertGPT)",
"contextWindow": 1000000,
"maxTokens": 32000,
"input": [
"text",
"image"
]
},
{
"id": "deepseek-v41-flash-fast",
"name": "No thinking – fast (SeibertGPT)",
"contextWindow": 1000000,
"maxTokens": 32000,
"input": [
"text",
"image"
]
},
{
"id": "deepseek-v41-flash-low",
"name": "Low reasoning effort (SeibertGPT)",
"contextWindow": 1000000,
"maxTokens": 32000,
"input": [
"text",
"image"
]
},
{
"id": "deepseek-v41-flash-high",
"name": "High reasoning effort (SeibertGPT)",
"contextWindow": 1000000,
"maxTokens": 32000,
"input": [
"text",
"image"
]
},
{
"id": "deepseek-v41-flash-max",
"name": "Maximum reasoning effort (SeibertGPT)",
"contextWindow": 1000000,
"maxTokens": 32000,
"input": [
"text",
"image"
]
}
]
}
}
}
4. Test
Ask “What's in the README?” – pi reads the file using a tool and summarizes it.
5. Troubleshooting
Model missing in /model
pi hides models if the key can't be read – check the Keychain entry or environment variable and open a new terminal.
Windows: “bash not found”
Install Git for Windows; pi uses its Bash.
HTTP 401 – key rejected
The key was copied incorrectly or has been revoked. Create a new key under Account → API keys.
HTTP 403 – IP binding
Your key is currently bound to a different IP (e.g. another device). Wait for the lock period to expire or release the binding under Account → API keys.
HTTP 413 – cold_request_too_large
A new or long-paused session starts with a lot of context. Start a new session or shorten the history.
“Hinweis von SeibertGPT: Der Kontext ist zu … gefüllt” (German context notice)
You're approaching your plan's context limit. Summarize the history (e.g. /compact) or start over.
Nothing works after an update
These tools change quickly. The version the guide was tested with is shown at the top – let us know if something no longer matches.