^_^
press any key to skip
One shell. Every model. Yours.
^_^ logishell.shell harness

LogiShellYour shellin the age of AI.

any model one shell

LogiShell wraps any model and any harness into one working shell. Local or cloud, on your keys, no vendor lock.

macOS · Linux $curl -fsSL logishell.com/get | sh

macOS blocks apps it cannot verify: we have no Apple signature yet. The command above installs and clears that block for you. Downloaded the .dmg instead and macOS refuses to open it? System Settings → Privacy & Security → Open Anyway.

Installed? Press ⌥Space: one gesture calls LOG from anywhere on your Mac.

All platforms: macOS·Linux·Windows·Web·Mobile

Runs on your machine · Keys stay with you · No vendor lock
your taskprompt
rolecoding
knowledge/rag
nowoffline ok
routerharness
Local firstYour keys
in Task · Role → Model
prefer-local · never guesses
local Qwenlocal
writes$0
cost panelledger
local$0 · remote $
Clauderemote
Your key
review1 bug found
$ harness ask --role light local · qwen3.5:4b · 37 tok/s · $0 · works offlinelogishell.com
tl;dr1light and private work runs locally, free2heavy work goes to the cloud on your keys3one panel shows what it cost
What you get

Local. Your keys. Any model.

Models get cheaper and stronger every quarter. LogiShell does not bet on one of them: a new model ships, you switch a line in a config, and your shell stays yours.

01 · perimeters

Local + Remote

Two perimeters. Private and light work runs on a model on your own machine: free, offline, nothing leaves. Heavy work goes to the cloud. By default everything that can stay home stays home.

local · $0+remote · your key
02 · byok

Bring your own keys

You pay the provider, not us: we never store a key and never resell your tokens. In the local harness the key lives in the keychain of your own machine and calls go straight from you to the provider. One person, any number of own machines.

keychainprovidercost panel
03 · adapters

Any model, any harness

Ollama, Claude, GPT, Gemini, Workers AI behind one interface, with MCP to give tools to any of them. Roles pick the model: one writes, a different one reviews, and you see the diff. Providers are suppliers, not a lock.

writerreviewerdiff
Pricing

The whole core is free.

You pay providers directly with your own keys, or nothing at all on local models. We charge for what costs us money to run. Annual billing is 20% off.

free

Free

$0

The whole core: shell, editor, terminal, canvas, local models, every adapter, your own keys. No account needed to run it on your machine.

cloud

Cloud

$19/ month

Storage and backups, sync across your machines, custom UI, premium in LogNet.

founder

Founder

$75/ month

Founder status, higher limits and some included inference, for people who build on LogiShell every day.

The problem

Code generation scaled. Code trust didn't.

LLMs made implementation nearly free, and reuse nearly impossible. Every generated function is a snowflake: no stable interface, no identity, no proof it works. Writing software is no longer the expensive part. Trusting it is.

spec.md
the ask
model
writes impl #4718
impl #4718
no hash · no identity
human review
queue: 41 waiting
regenerate → re-review → repeat forever

Review is the new wall

Every AI-generated line waits for a human willing to trust it.

Trust evaporates

Generated code has no identity; verified today, anonymous tomorrow.

Code stopped compounding

Teams regenerate and re-review the same logic thousands of times.

Block anatomy

A block is a contract, not code.

computeQuote
ComputeDeterministic
fn computeQuote(LineItem[], Customer) → Quote
in  LineItem[] · CustomerQuote
0x6748…1ee9·verdict: verified·cached
1

Typed ports

Inputs and outputs are declared types: teal in, amber out. Blocks only connect when the types line up.

2

Declared effects & cost

Every capability a block touches is on the contract, stated abstractly. A schema that names a cloud binding or a filesystem path is rejected at the perimeter.

3

Content-addressed identity

The hash is the sha256 of the block's content, with its dependency hashes folded in Merkle-style. Two identical blocks share it; a renamed block keeps it. Derived, never declared.

4

Verified once, cached forever

On the deterministic side of the blade the verdict is keyed by content hash plus input digest and never expires. Non-determinism anywhere in what a block depends on unsettles it, and the plan names the culprit.

How it works

How it works
01 · Contract

A contract, not code.

Define ports, effects, capabilities and cost, or let LOG draft the contract from your spec. Nothing is generated yet.

02 · Generate

Any model fills it in.

A model writes an implementation to satisfy the contract. Implementations are disposable: the contract is the asset.

03 · Verify

Verified once, cached forever.

Review checks the implementation against the contract. The verdict is keyed by the block's content hash, so a review that already passed never runs again.

04 · Compose

Blocks snap into a program.

Blocks connect by structural port matching: a User output satisfies an input asking for an email string: no mapping file. An ambiguous seam is a gap with a reason, never a guess.

^_^ contract.canvasstep 1/4
sampleCartcart.ts
outCart
Tax engineref
regionEU · 19%
computeQuotequote.ts
ComputeDeterministic
const q = base·seats + taxFor(region)
return { total, currency }
contract · draft0x6748…1ee9 · generating…0x6748…1ee9 · verified · cached
quote.testspec
7 casespassed
explainQuotellm
outMarkdown
Deterministic
DETERMINISTIC
cached · replayed · free to re-run
Probabilistic
PROBABILISTIC
journaled · gated · human-approvable

One boundary runs through everything.

Caching, pricing, review and replay all derive from this one visible line.

Two ways in

Bring a repo. Or bring nothing.

You have a repo

Import it. Nothing gets rewritten.

LogiShell reads your repo in place: nothing rewritten, nothing moved. Symbols are lifted into typed blocks by asking your own language servers, and only the nodes it can prove cross into the canvas. The rest comes back marked unmapped, with the reason.

$ lb-runner import .
▸ mapped   symbol   billing/quote.computeQuote
▸ unmapped file     legacy/report.rb: no probe
▸ 812 nodes: 604 mapped, 208 unmapped
✓ 604 of them are kernel blocks
You have an idea

Solo founder? Start from a sentence.

Describe the product and LOG drafts the contracts, entities, typed ports, the effects each step needs. Deterministic steps run straight away, no account, no infrastructure, nothing to pay for. The first real effect stops at a gate and waits for you.

$ lsh plan company.yaml
◇ pure    price.compute
◆ effect  invoice.send: gated: effect requires approval
✓ pure steps ran · the blade stopped the rest
macOS · Linux $curl -fsSL logishell.com/install.sh | sh

The .dmg isn't notarized yet: if macOS blocks it, install with the command above instead.

Add to your agent

Your agent already works. Give it LogiShell.

One door, OAuth sign-in, no token to paste. Works with the agent you already have.

Claude Code

$claude mcp add --transport http logishell https://mcp.logishell.com/mcp

The first call opens a sign-in page in your browser.

claude.ai

  1. Settings → Connectors → Add custom connector
  2. Name: logishell
  3. URL: https://mcp.logishell.com/mcp
  4. Client ID and Client Secret stay empty
  5. Add

Cursor

Add to Cursor

The first call opens a sign-in page in your browser.

VS Code

Add to VS Code

The first call opens a sign-in page in your browser.

Codex

$codex mcp add logishell --url https://mcp.logishell.com/mcp

The first call opens a sign-in page in your browser.

Gemini CLI

$gemini mcp add --transport http logishell https://mcp.logishell.com/mcp

The first call opens a sign-in page in your browser.

Windsurf

Show the config
{
  "mcpServers": {
    "logishell": {
      "serverUrl": "https://mcp.logishell.com/mcp"
    }
  }
}

Paste into ~/.codeium/windsurf/mcp_config.json.

Other MCP clients

Show the config
{
  "mcpServers": {
    "logishell": {
      "type": "http",
      "url": "https://mcp.logishell.com/mcp"
    }
  }
}

Add to your client's MCP configuration.

Browse the tools first →
Skills for your agent$npx skills add logishell/skills
Claude Code plugin/plugin marketplace add logishell/skills
Describe → materialize

Describe like a child. Verify like an auditor.

prompt
Invoiceentity
idUUID
customerIdUUID
linesLineItem[]
periodDateRange
taxRegionRegion
totalMoney
statusPaymentStatus
issuedAtTimestamp
0x2fd8…f5ecverdict: verifiedcached
entity contract implementation verified
The stack

Shell → Harness → Models.

Your shellwhere you work

Code editor, terminal and canvas in one place, with LOG beside you. It runs on your machine or in any browser, and it is the same shell whichever model is behind it.

The harnesspicks the model

Adapters behind one interface, roles routed by a config file, MCP for tools, typed blocks so the work a model produces can be verified instead of trusted.

Your modelslocal and remote

Suppliers, not a lock.

A local perimeter on your own hardware and a remote one on your own keys. A cheaper, stronger model ships: you win, and so do we.

“One shell. Every model. Yours.”
Systems, not snippets

Real systems, assembled from blocks.

Nine shapes LogiShell is built for: each one a graph of typed blocks. Deterministic where it can be, gated where it must be. The wires only connect when the ports do.

Pricing & quotes6 blocks

sampleCart
out · Cart
Tax engine
ref · EU 19%
computeQuote
✓ verified · cached
Deterministic· verified · cached

Auth & sessions4 blocks

credentials
out · Creds
login
✓ verified
session
stored
Deterministic· verified · audited

Invoicing & tax7 blocks

usage
out · Usage
rates
ref · region
invoice
✓ verified · cached
Deterministic· verified · cached

AI agentsagentic

inbox
out · Msg
^_^ agent
plans · gated
tools
typed
Probabilistic· journaled · gated

Content moderation3 blocks

post
out · Post
classify
p = 0.97
gate
approved
Probabilistic· human-approvable

ETL pipeline5 blocks

ingest
out · Rows
transform
✓ verified
store
replayable
Deterministic· replays free

Integrationsconnectors

Stripe
out · Charge
Slack
out · Event
flow
ports match ✓
Deterministic· ports typed

Internal toolsops

blocks.query
live data
dashboard
wired, not copied
Deterministic· live, not a copy

Support triage4 blocks

ticket
out · Ticket
triage
routes · gated
route
human-ok
Probabilistic· journaled · gated
Why now

Research caught up.

Recursive Language Models and CodeAct pointed the same way: a model does far better exploring a typed, executable environment than swallowing the whole context. LogiShell is that environment: typed, content-addressed, auditable.

JSON Schema 2020-12 contracts · MCP server your agent can call · source-available · no proprietary lock-in
kernel runs today: validate · plan · run contract v0: Go and TS mirrors pinned canvas IDE in prototype
Your shell in the age of AI. Built in the open by a solo technical founder.
Get LogiShell

Your shell in the age of AI.

LogiShell already runs, on your machine or in any browser. Bring your own keys, or bring nothing and start on a local model.

On a phone: open it in Safari or Chrome and add it to your home screen: the App Store and Play builds aren't submitted yet.

The .dmg isn't notarized yet: if macOS blocks it, install with curl -fsSL logishell.com/install.sh | sh instead.

Get product updates

By selecting Get updates, you request product-update emails and an onboarding link. To stop emails, contact hello@logishell.com. See our Privacy Policy.
^_^canvas·x 0·y 0·100%·hero.canvas
^_^Yes → Home