lokal
A terminal assistant that runs on a model on your own machine. It runs commands, reads your files and changes them, and asks before anything changes.
curl -fsSLo lokal https://download.guimadaleno.com/lokal/0.3.0/lokal && chmod +x lokal && ./lokal --installVersion 0.3.0, for Linux and WSL on x86-64. One file, which installs itself in ~/.local/bin and keeps itself up to date. Its SHA-256 is in SHA256SUMS.
Lokal 0.3.0 qwen3.8-27b > is the web container running? $ docker ps -a --filter name=web --format '{{.Names}} {{.Status}}' web Exited (0) 2 hours ago It's stopped: it exited 2 hours ago. ────────────────────────────────────────────────────────────────────────────────────────────────> start it $ docker start web Starts the stopped container web. Run it? Yes Yes, and don't ask again this session Yes, and don't ask again in this project › No
Your model, your machine
LM Studio, or any server that speaks the OpenAI API. Lokal finds it on its own, from WSL too.
Asks before it acts
Read-only commands run at once. Anything else waits for your yes, and every file change shows its diff first.
Quiet
Its reasoning shows in a small window that clears itself, so only the answer stays. Beside the breathing dot: what it's doing, and for how long.
Set up LM Studio
About five minutes, once.
- Install LM StudioFrom lmstudio.ai, on the machine that will run the model.
- Download a model that can use toolsLM Studio marks the models that support tool use; Lokal needs one to run commands and edit files.
- Load it with room to workA context length of 32k tokens or more: command output and files fill it up.
- Start the serverIn the Developer tab, switch the server on. Lokal looks for it on port 1234.
- Using WSL? Let it reach WindowsTurn on "Serve on Local Network" in the server's settings. LM Studio runs on Windows, and WSL reaches it over the network; Lokal finds the address by itself.
- Run
lokalThat's it. To pin a server or a model, write them in~/.config/lokal/config.
What it won't do
Lokal is defined as much by what it refuses.
- Run anything that can change your machine without your yes. Which commands count as read-only is Lokal's own list, never the model's call.
- Change a file without showing you the diff first, every time.
- Take a key you pressed before the question as its answer.
- Send anything anywhere, except one update check a day, which
updates = offturns off.