lsh

lsh · the LogiShell terminal

Just a terminal.
A good one.

lsh is a small native terminal for macOS, Linux and Windows. Your login shell, Claude Code and Codex as they are, nothing wrapped. Sign in once and the same shell is part of LogiShell.

Download lsh macOS · Linux · Windows

01 · download

One file for your system.

Your login shell in a real PTY, nothing in the way. One palette (⌘K on macOS, Ctrl+Shift+P elsewhere) clears, restarts, copies, pastes and zooms. Shortcuts never take a Ctrl chord your shell needs. Signed in, the same shell is part of LogiShell: LOG sees it, your phone sees it.

macOSApple siliconchecking the release channel
Linux.deb and AppImage, x86_64checking the release channel
Windowsx86_64checking the release channel

Preview builds. A button appears only for a file that is on the release channel (dl.lsh.dev), with its SHA-256. The macOS build is signed and notarized; the Linux packages and the Windows installer are not code signed yet.

lsh · zsh
$ claude
Claude Code in your own shell, nothing wrapped
✓ this shell is part of LogiShell · studio

⌘K palette
  clear  ·  restart shell  ·  copy
  paste  ·  zoom in  ·  zoom out

the shell ended · press Enter for a new one

02 · inside

lsh, the command, comes with it.

The terminal carries the lsh command line. Want only the command, on a server or in CI? One line, no administrator rights.

$ curl -fsSL https://cli.lsh.dev/install.sh | sh
server
$ curl -fsSL https://cli.lsh.dev/install.sh | sh
✓ lsh installed to ~/.local/bin
checksum verified, no sudo

$ lsh login
code  K7Q-4MX
✓ this machine: build-01

03 · map

Blocks, not a file tree.

One command reads packages, files and, with --depth sym, what every symbol calls. Names come from your own paths. Nothing is guessed: what it could not prove, it says it could not prove.

  • lsh scan . the map, as markdown or --format json
  • lsh project-map code by language and directory, and what was never built
  • --open the same report, in your browser
~/site
$ lsh scan .
# site · repository map

1 packages · 23 files · languages: ts
depth `file` · 0 proven · 24 unproven

## Verdict
Imports reach fetch, node:child_process
and node:fs: that is where the risk lives.

## Run it
read from the manifests, nothing guessed
- npm run build
- npm run test

04 · verify

Verdicts your agent cannot sign itself.

A person writes down what must stay true. lsh checks the code against it, the same way every time, and caches the answer by hash. The tool that writes code never confirms its own contract: confirmation is a human act in the terminal.

  • lsh blocks verify a draft reaches the shelf only with every test green
  • lsh blocks shelf what is proven here, and how often it is reused
  • lsh product check red the moment the registry stops matching the tree
~/payments
$ lsh blocks verify refund.yaml
✓ refund.amount never exceeds charge
✓ refund never logs card data
✗ refund is idempotent by key
  second call wrote a new row

nothing written · 2 of 3 green
fix the red test, run it again

05 · door

One door for every agent.

Claude Code, Codex or your own harness: lsh mcp serve gives them the map, the decisions and the other sessions of the same repo. Sign the machine in once and LOG sees it from your phone.

  • lsh login a short code and a QR, this machine gets its own token
  • lsh mcp serve the local door for this working copy, over stdio
  • lsh claude mode install the LogiShell mod for Claude Code
~/any-repo
$ lsh login
code  K7Q-4MX
confirm it where you are already signed in
✓ signed in as you · this machine: studio

$ lsh mcp serve
door open over stdio · map, decisions, sessions

06 · sdk

Build on it.

@logishell/sdk is a thin typed fetch client for the LogiShell block registry and orchestrator APIs. No runtime of its own, ESM, works in Node, Workers and the browser.

blocks.ts
// TypeScript, ESM
import { createClient } from '@logishell/sdk';

const client = createClient({ registryUrl, orchestratorUrl, token });
const blocks = await client.blocks.list();

lsh, in five answers

What is lsh?

lsh is the terminal of LogiShell. It comes as a small native terminal app and as the lsh command line, which reads a repository as a map of blocks, checks code against contracts a person confirmed, and opens one door for coding agents such as Claude Code and Codex.

How do I get the lsh terminal?

Download it above: a signed and notarized .dmg for macOS on Apple silicon, a .deb and an AppImage for Linux, and an installer for Windows. Every file is listed with its SHA-256.

How do I install the lsh CLI?

Run curl -fsSL https://cli.lsh.dev/install.sh | sh in a terminal, or irm https://cli.lsh.dev/install.ps1 | iex in PowerShell. Without installing anything you can also run npx logishell scan . in any repository.

Does lsh work with Claude Code and Codex?

Yes. lsh mcp serve exposes the map, decisions and sessions of a working copy to any MCP client over stdio, and lsh claude mode install adds the LogiShell mod to Claude Code.

Which systems does lsh run on?

macOS, Linux and Windows, for both the terminal app and the CLI. CLI binaries and checksums for every target are on cli.lsh.dev.