Products Marketplace Blog About Contact Sign in Download
lac shell: Write Commands in Plain English

lac shell: Write Commands in Plain English

lac shell is the part of lac-cli most people open first and use every day — type what you want in plain English, confirm, done. Here's a proper look at how it actually works.

The terminal is still terrible at being human

I've been using the terminal for years. I'm fine with it. But there are still moments where I sit there staring at a blank prompt, trying to remember whether it's tar -xzvf or tar -zxvf, or whether find wants -name or --name, or which grep flag I need to print the line number. These aren't hard things. They're just forgettable things. And googling them every time is a workflow tax I've been paying for no good reason.

That's exactly the gap lac shell fills. Not a full agent that writes code — that's lac agent. Just the shell, made fluent in plain English.

Getting it running

If you haven't installed lac-cli yet, it's one command:

pip install lac-cli

Or if you'd rather use the install script:

curl -fsSL https://lacai.io/install.sh | bash

Then launch the shell:

lac shell

First time you run it, you'll be walked through a provider setup wizard — pick Claude, OpenAI, Ollama, or any OpenAI-compatible endpoint. Your config gets saved to ~/.lac/config.json so you never have to touch it again unless you want to switch. If you do want to re-run the wizard later, just pass --setup:

lac shell --setup

What it actually looks like to use

Once you're in the shell, you type what you want. Not a command — what you want to happen.

Something like:

find all log files in this directory older than 7 days and delete them

lac shell translates that into the actual command, shows it to you, and waits for you to confirm before running anything. You're never out of the loop. It doesn't just fire off whatever it generates — it puts the command on screen, you press Enter to run it or tweak it first if something looks off.

That confirm step matters more than it sounds. I've used other tools that run immediately, and the first time something goes sideways you stop trusting the whole thing. Here you always see what's about to happen. It makes it feel safe to use on a real machine, not just a sandbox.

Ghost text autocomplete

This is the part I didn't expect to like as much as I do. As you type — even traditional commands, not just plain English — lac shell shows ghost text suggestions inline. Think of it like tab completion that actually understands intent rather than just matching prefixes.

The suggestion appears faded ahead of your cursor. Press Tab to accept it. If it's not what you want, just keep typing and it updates. It's fast enough that it doesn't interrupt your flow at all.

Where this really earns its keep is with longer commands that have a bunch of flags. I was working on something the other day involving rsync and instead of opening a new tab to look up which flags I needed, I just typed "rsync this folder to remote preserving permissions and showing progress" and Tab'd through the ghost text. Done.

Going offline with Ollama

If you work somewhere with restricted internet, or you just don't want API calls leaving your machine, there's a --offline flag:

lac shell --offline

This routes everything through a local Ollama model instead of any cloud provider. You need Ollama running locally with a model pulled, but once that's set up it works exactly the same way. No API keys, no network calls, no latency from a remote server. For anything sensitive — internal infra, private repos, local dev boxes — this is worth setting up.

The offline mode is also just nice on a plane or somewhere with bad wifi. The shell still works, ghost text still works, nothing degrades.

How it compares to just using lac agent

People sometimes ask why there are two things — lac shell and lac agent. They solve different problems.

lac shell is for interactive, one-off terminal commands. You're in a session, you need to do something, you describe it, you run it, done. No files are read or written by the tool itself. It's just translating your intent into a shell command and handing it back to you.

lac agent is a full agentic coding assistant. It reads your codebase, writes and edits files, tracks tasks, has project memory that persists across sessions, supports undo/redo with diff preview, PlanMode — a whole different surface area. It's for longer, multi-step work on a project.

Most days I use both. lac shell for quick operations — moving files around, grepping logs, checking disk space, setting permissions — and lac agent when I'm actually building or debugging something. They don't overlap, they complement.

A few commands worth trying immediately

If you install lac-cli today and want to get a feel for lac shell fast, try a few of these as your first prompts once you're in the shell:

  • "show me the 10 largest files in this directory" — good intro because the generated command is readable and you'll learn something
  • "kill the process running on port 3000" — I use this multiple times a day
  • "compress all png files in this folder to jpg" — tests that it handles loops and tool flags correctly
  • "show my git log as a graph for the last 20 commits" — the git log graph flags are the ones I can never remember
  • "watch my CPU usage live" — simple but satisfying

Each one shows you the generated command before running. Read it. You'll start picking up the patterns over time, which is a side effect I didn't expect — using lac shell has actually made me better at the terminal, not more dependent on it.

One practical tip before you go

If you're already using a specific provider for lac agent but want to try a different model in lac shell, you can edit ~/.lac/config.json directly or re-run lac shell --setup and pick something else. The config is plain JSON and it's easy to read. Each tool in lac-cli respects the same config file, so changes apply across the whole toolkit — no per-tool config hunting.

Start there. The shell is the quickest thing to get value from in lac-cli, and once you've used it for a week you'll notice how much less time you spend alt-tabbing to look up flags.

We use cookies to keep you signed in and to serve ads via Google AdSense. By continuing to use this site you agree to our Privacy Policy.