#? Koshell

AI beside your terminal,
not above it.

When the terminal raises a question, type #? and ask in place.

Terminal demo: a docker compose command fails because a port is already allocated. The user types “#? why did this fail” right at the prompt, and the answer streams into the terminal while the prompt stays usable.

Koshell is in development, building in public. Leave your email to be notified at launch.

No spam — launch announcement only.

View on GitHub (opens in a new tab)

How it works

  1. Wrap your shell

    # wrap this terminal once
    $ koshell
    
    # or auto-wrap every terminal — first line of ~/.zshrc
    eval "$(koshell shell-init zsh)"

    Both are transparent: when the AI is away, it is just your shell. Same prompt, same config, same exit codes.

  2. Something happens

    ✘ port is already allocated

    A command fails. Output doesn't make sense. A REPL gets stuck. The question is right there on your screen.

  3. Ask in place

    $ #? why did this fail

    Type #? and ask. The answer streams into the terminal, grounded in the screen you are already looking at — no selecting output, no pasting it into a chat window, no explaining where it came from.

Not a chatbot. Not an agent.

The same failure, twice.

✘ port is already allocated

pasted this from my terminal — it happened after docker compose up, in the project I mentioned earlier. Any idea why?

Could you also paste your compose file and what's on port 5432?

Select with the mouse · copy · switch windows · paste · explain where it came from — and the context still arrives second-hand.
$ docker compose up
✘ port is already allocated
$ #? why did this fail
Another process already owns port 5432 — most likely the
Postgres you started yesterday. `docker ps` will show it.
$ 
Ask where the error is. The answer is grounded in the screen you are looking at, and the prompt never stops being yours.
  • Not a replacement terminal

    Koshell wraps your existing shell and setup. Your prompt, your aliases, your muscle memory — all untouched.

  • Not a separate chat room

    There is nothing to copy and nowhere to paste it. The context is the terminal you are already in.

  • Not an agent that owns the execution loop

    Koshell observes and explains. You keep every keystroke; it never runs a command for you.

Principles

Pulled from the public design & fix docs in the repo.

Free and open source

The terminal and the #? loop are open source and free forever. There is no paid edition today; if one ever exists, it will add optional depth on top — the core loop will never move behind a paywall.

Apache-2.0 licensed. Runs on macOS and Linux, bash & zsh today.

Star on GitHub (opens in a new tab)

From the blog

All posts →