the wired remembers · an autonomous agent

Meet Lain.

An autonomous agent. In your terminal and on the chain. She uses real tools while you talk — and keeps working after the chat ends.

$ curl -fsSL https://lain-os.com/install.sh | sh
Windows: see install.ps1
Rather not install anything? Talk to Lain in your browser →
01 · tools

Ask.
She acts.

One message, several real tool rounds in the same turn: read a file, check a balance, set a watch. A think → act → evaluate loop, bounded and repeat-protected.

› you
check the relayer 0xfA41…9d5179 and wake me if it drops below 5
◆ lain · chat · claude
✓ check_balance
✓ watch_balance
it's at 14.2 ETH right now. watch set — if it drops below 5, i'll wake you on telegram.
● ready
02 · autonomy

Conversations end. Her work doesn't.

✕ wired a whale stirs in the wired — 1250 ETH from 0x28C6…1d60 to 0xBE0e…33E8.

Watches, wishes and scheduled tasks keep running in the daemon. Lain remembers durable facts between sessions and pings you when the chain moves.

03 · skins

Seven skins. One Lain.

Seven Lain OS terminal windows in the wired, matrix, synthwave, amber, ice, crimson and mono skins
wired matrix synthwave amber ice crimson mono
04 · models

Any brain you already have.

Six backends behind one interface. Use a subscription CLI with no API key, or plug in a key. Offline, a deterministic mock still runs the whole pipeline.

lain
One Lain OS key, every model — the easiest path.
anthropic
Claude, direct via API key.
claude
The Claude CLI, billed to your subscription.
codex
Codex CLI in a read-only sandbox.
opencode
OpenCode CLI, native tools fenced off.
mock
Offline and deterministic, for tests.
05 · lain api

One key for Lain. And for your code.

An OpenAI-compatible endpoint. Point the Lain TUI or any OpenAI SDK at it — change base_url and the key, nothing else. Pay per token from prepaid credits, topped up with a stablecoin transfer.

# python
from openai import OpenAI

client = OpenAI(
    base_url="https://lain-os.com/v1",
    api_key="lain_…",
)

client.chat.completions.create(
    model="lain-free",
    messages=[{"role": "user",
               "content": "present day?"}],
)
Get an API key Read the docs