A local browser GUI for your LLM API keys — test them, chat with their models, and export a ready-to-use opencode config. One Perl file. Keys never leave your machine.
janus.plstarts a tiny server on127.0.0.1:4444(next free port if busy) and opens the GUI in your browser.- All test/fetch/chat traffic goes through that server — no browser CORS errors.
Keys live only in your browser's
localStorage. - A key can be
{env:MY_KEY}instead of the literal key — the server reads it from your machine's environment when the request is made. - Close the tab → server stops by itself. Ctrl+C also stops it.
The server binds to localhost only and rejects requests from any other host or origin, so other sites on your network can't reach it.
- Right-click
janus.pl→ Properties → Permissions. - Enable Allow executing file as program.
(Same thing in terminal:
chmod +x janus.pl) - Double-click
janus.pl— the GUI opens in your browser.
Missing-module error? Install them once:
# Debian/Ubuntu
sudo apt install libwww-perl liblwp-protocol-https-perl
# Fedora
sudo dnf install perl-libwww-perl perl-LWP-Protocol-https- Install Strawberry Perl — it already includes every module Janus needs.
- Right-click
janus.pl→ Execute Perl Program. (That's the entry Strawberry's installer puts in the right-click menu.) - If you don't see that entry — the .pl association is broken; run it from
a terminal instead:
perl janus.pl.
Any terminal also works on both: perl janus.pl (add a port number to
override: perl janus.pl 8080).
- + adds a provider: Base URL (usually ends in
/v1) + key or{env:MY_KEY}. - Test / Fetch models verifies the key and pulls its models;
a wrong URL ending is auto-fixed (e.g. missing
/v1). - Test all checks every key — and can be stopped mid-run.
- Chat to any model; Config tab copies/exports
opencode.jsoncor a Hermes config.
Put the exported file at ~/.config/opencode/opencode.jsonc — that's it.
MIT — see LICENSE.

