^_^
press any key to skip
Canvas IDE for typed logic
^_^ logishell.canvas contract

LogiShellLogic Buddyfor humans & AI.

your repo verified blocks

Describe what you need in plain words and LOG drafts a typed block: declared ports, effects, cost. Wire blocks on an infinite canvas — the canvas is the program, and every deterministic block is proven once, then cached forever.

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

Reads your repo in place · Never rewrites it · Runs on your machine
sampleCartcart.ts
outCart
Tax engineref
regionEU · 19%
computeQuotequote.ts
ComputeDeterministic
in Cart · Customer → Quote
0x6748…1ee9 · verified · cached
quote.testspec
7 casespassed
explainQuotellm
outMarkdown
reviewgate
Probabilistic
verdictapproved
$ lsh run quote 7 passed · total $23,800 · 0.41s · cachedlogishell.com
tl;dr1say it in plain words2get a typed, verified block3wire blocks into a system
What you get

Describe. Verify. Compose.

No new language to learn. Point LogiShell at a repo: it reads the code in place and lifts what it finds into typed blocks — and only what it can prove crosses into the canvas.

01 · describe

Typed blocks from plain language

Say what an entity or process is. You get the contract first — typed ports, declared effects, a cost surface — before a line of implementation exists.

spec^_^draftcontract
02 · verify

Proof, not trust

Identity is computed, not claimed: a block's hash is the sha256 of its content, with its dependencies folded in. Rename it and the hash holds. The verdict is keyed to that hash, so a proof that passed never runs twice.

0x6748…+refsverified ✓
03 · compose

Code and canvas, one program

Wire blocks on an infinite plane or edit the same program as code — one program, two views. Seams match structurally, not by name, so blocks connect with no mapping file. An ambiguous seam fails loud with a reason; the resolver never guesses.

blockscode+resolver
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.

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

IDE → Protocol → Store.

LogiShellcreates blocks

The canvas IDE. Describe, generate and wire typed blocks on an infinite plane — code and canvas, one program.

LogicBlocksmakes them trustworthy

Contracts · content-addressed identity · derived cache verdicts. The protocol that turns a generated function into something you can prove — and the layer that runs today.

LogicStoremakes them tradable

Closed source. Open trust.

Sell a verified block without showing its source. Not built yet — it's what the identity is for.

“Buyers verify the artifact, not the repo.”
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
Logic Buddy for humans & AI. Built in the open by a solo technical founder.
Get LogiShell

Logic Buddy for humans & AI.

LogiShell already runs — on your machine or in any browser. Bring a repo you don't fully trust, or bring nothing at all.

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

No spam — release notes, new platforms, and your onboarding link.
^_^canvas·x 0·y 0·100%·hero.canvas
^_^