shell plugin for zsh & bash

Talk to
your shell

Commands execute. Questions go to AI. No prefix, no mode switching. You just type.

$ curl -fsSL https://lacy.sh/install | bash
$ brew install lacymorrow/tap/lacy
$ npx lacy
$ git clone https://github.com/lacymorrow/lacy.git ~/.lacy$ echo 'source ~/.lacy/lacy.plugin.zsh' >> ~/.zshrc # or .bashrc

Not another AI CLI. Lacy is the layer between your shell and every AI tool you already use.

Green bar = shell. Purple bar = AI.
>ls -lashell
drwxr-xr-x 12 user staff 384 Feb 3 09:21 .
>what files are hereagent
You have 12 files including package.json, src/, ...
>git statusshell
>fix the build error in src/index.tsagent
>cd .. && npm testshell
>make sure the tests passreroute
No rule to make target 'sure' → caught, rerouting to AI...

works with your tools

Already using an AI CLI? Lacy routes to it. No extra auth, no API keys. Pick your agent:

lash run -c "query"
recommended
claude
claude -p "query"
Claude Code
opencode
opencode run -c "query"
gemini
gemini --resume -p "query"
Google
codex
codex exec resume --last "query"
OpenAI
custom
your-command "query"
anything

how it works

You type.
Lacy decides.

Lacy adds a tiny colored bar to your prompt. That's it. Your shell stays exactly the same. Commands run locally, questions go to your agent. Works on your laptop, on a VPS over SSH, anywhere you have a shell. Toggle between auto, shell-only, and agent-only with Ctrl+Space.

Zero footprint

Nothing changes about your existing shell. Same config, same aliases, same workflow. Lacy just watches and routes.

Runs anywhere

Local terminal, remote server, SSH session. If you have ZSH or Bash, Lacy works. No GUI, no daemon, no background process.

Stays local

Lacy runs on your machine. Nothing leaves unless you send it to your agent. MIT licensed, no telemetry, open source.

Stop context-switching.
Start shipping.

$ curl -fsSL https://lacy.sh/install | bash