Using VLE AI with OpenCode
Guide on how to connect to Jamk's VLE AI models using Open WebUI and OpenCode
Notes#
- You need to be connected to Labranet VPN
- The URL for VLE AI is: https://ai.vle.fi
- Here is a video overview from Narsu, explaining what VLE AI is, how it is built and what are the plans for its usage: https://panopto.jamk.fi/Panopto/Pages/Viewer.aspx?id=76d2edc7-6bf0-483d-a313-b3d000ad0b71
Introduction#
VLE AI is Jamk's self-hosted AI solution for students and WIMMA Capstone team. You can use it while working on your student projects and tasks. Multiple open-weight AI models are available (Qwen3 Code, GPT-OSS 120B etc.) and you can switch between them.
The benefit of the service lies in easy access to AI models without gated pay-walls.
The web interface has been set up with Open WebUI and you can use it for chat from within the browser. You can also get an API key and use it inside the terminal using tools like OpenCode and Pi.
How to use from within the browser#
Login at https://ai.vle.fi with your Labranet credentials
How to use from within the terminal#

Open WebUI has an OpenAI-compatible API, you can use its API keys in OpenCode
- Login at https://ai.vle.fi with your Labranet credentials
- Get an API key. Click the user avatar → Settings → Account → API Keys

- Install OpenCode:
curl -fsSL https://opencode.ai/install | bash - Create/Update the OpenCode config file:
~/.config/opencode/opencode.jsonand add the following config for a custom provider - Make sure to update the
Authorizationheader with your own API key
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"vle-ai": {
"npm": "@ai-sdk/openai-compatible",
"name": "VLE AI",
"options": {
"type": "api",
"baseURL": "https://ai.vle.fi/api/v1",
"compatibility": "openai",
"headers": {
// Replace the key with your own API key
"Authorization": "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
},
// Models are listed in a dropdown in the upper left hand corner once you are logged in to https://ai.vle.fi/
"models": {
"gpt-oss:120b": {
"name": "GPT-OSS 120B"
}
}
}
}
}
NOTE: The config needs to include at least one model or the provider will not show in OpenCode
Once done, restart OpenCode. You should now see the model listed with the /models command
