Webbee Code

The coding agent that lives in your terminal.

She reads, writes and runs the code in your working directory, while the brain runs in the cloud on ICNLI, the open protocol behind her. No model keys on your machine.

The model proposes. The kernel decides. The key, delete, drop, wipe, stays with you.

Install webbeeone line · 3.11+ · MIT
~ · webbee 0.3.50 · MITreal commands

pipx install webbee

The recommended route: an isolated environment, on your PATH.

webbee

start the agent in the current directory

webbee login

sign in, shows a code + URL to open in any browser

Ready. Type a task: I’ll run it to completion.

Type a task: Webbee runs it to completion

mode: default · model: Smart · 3.4k tok · 1.2M credits this session · ▶ 1 runningwebbee 0.3.50

Python 3.11+ · MIT · no model keys on your machinefull install guide →

This is what she looks like

One window. Tabs. A Home screen. A terminal that behaves like a workspace.

Not a prompt that scrolls away. Webbee Code opens as a dock: a Home screen you navigate with the arrow keys, session tabs across the top, a pinned input box, and a status line that always says what she is doing and what it has cost.

~/projects/api

🐝 Webbee Code

ICNLI AI Cloud OS · Agent

· i m p e r a l . i o ·

❯ fix the failing auth test and tell me what broke

💭 The suite fails only under parallel runs, likely shared fixture state.

  🔎 grepdef test_auth3 matches in 2 files

  📖 read_filetests/test_auth.py184 lines

  🔧 edit_filetests/conftest.pyfixture scoped per-test

   bashpytest -q tests/test_auth.py12 passed

🐝 The fixture was session-scoped, so a parallel run reused a stale token.

  13.9s · 6 tools · 41.2k tok · session 128k tok

⋯ queued (3) ▾· ↑ edit last · click to edit · ✕ remove

   [telegram] also bump the changelog

   run the full suite once that lands

   then push the tag

Type a task: Webbee runs it to completion

⠹ working · bash pytest -q · 12s · 7 · 41.2k tok · Esc/Ctrl-C to stopwebbee 0.3.50

Below is the real interface, rebuilt in the page, every colour, glyph and label is read from webbee 0.3.50 itself. Click the tabs.

Tabs in one window, sessions kept apartEach tab is its own session with its own transcript, mode and cost. Open a second tab on a repo another tab already holds and she gives it its own git worktree, so two parallel tasks cannot overwrite each other.
A Home screen, not an empty promptWho you are, what the session has cost, every tab you have running, your recent repos, the devices this account is signed in on, and your settings, all navigable with ↑↓ and ↵.
The + opens a new sessionExactly like a browser's new-tab button, it is always there, and Ctrl+T does the same. Home is pinned first and can never be closed.
Three modes, one keystroke apartShift + TAB cycles default → plan → autopilot, and the mode is coloured in the status line so you always know which one you are in. Each tab carries its own mode.
Your tabs come backClose the terminal, even by accident, and your layout is restored per repo, each tab re-attaching to its own still-running work. Autopilot is deliberately never restored: a mode that acts on its own has to be turned on again.
Closing a tab does not kill the runThe work runs server-side, so closing a tab, losing the network or quitting the terminal does not end it. The stream resumes from the last event it saw and the transcript replays when you come back.
The same session from anywhereA run started in the terminal can be steered and approved from Telegram or the panel, it is one Webbee with one memory, not three copies.
macOS, Linux and WindowsOne pip-installable package, no model keys on your machine, the brain runs in the cloud on ICNLI, so the terminal stays light.
a consent question is waiting in that tabthat tab is busy, a turn is runningidle, ready for the next task

Every command

  • /helpevery command
  • /modedefault · plan · autopilot
  • /modelSmart · SuperSmart · UltraSmart (or Ctrl+B to cycle)
  • /statuscwd · git · surface · tokens · version
  • /costwhat this session has spent
  • /checkpointsthe session's snapshots
  • /rollbackput the workspace back
  • /tabsyour session tabs
  • /newanother task, in parallel
  • /attachhand her a local file (or a glob) to read
  • /queueline up work while she's busy
  • /notifyoff · panel · telegram · both
  • /sessionswhat's running, anywhere
  • /clearreset this conversation

One package. Any machine.

Pure-Python, one universal wheel, no native build step, so there is nothing that can be "wrong" for your chip. Runs wherever Python 3.11+ does: macOS (Apple Silicon or Intel), Linux, and Windows, on Intel, AMD or ARM alike.

  • No model keys to manage, the brain runs in the cloud, the terminal stays light
  • One login for every surface, the panel, the terminal and your messenger share the same session
  • Upgrading is the exact one-liner you installed with

You hold the key

Three modes. One keystroke. You decide how much rope she gets.

Cycle them with Shift + TAB , mid-task, without restarting anything. Pick one below and read both columns: what she does herself, and what she will not touch without your word.

~/projects/api · mode: defaultShift+TAB to cycle

/mode default

She does the small, reversible stuff herself. Anything she can't undo, she stops and asks you first.

Does it herself

  • Read any file in the working directory
  • Write and edit code, then run the tests
  • Run commands whose effect she can undo

Not without you

  • Deleting, dropping, or wiping anything
  • Anything that leaves your machine
  • Anything that spends money

Every write is checkpointed first, so "undo" is a real command and not a promise.

Type a task: Webbee runs it to completion

mode: default · model: Smart · 3.4k tok · 1.2M credits this session · ▶ 1 runningwebbee 0.3.50

One keystroke, three tiers

How much thinking a task is worth, you decide, mid-session.

Cycle tiers with Ctrl+B or type /modelno restart, no losing your place. Same shift + tab muscle memory as switching modes.

Smart

The default tier, fast, and strong enough for almost everything you'll throw at her. What runs when you never touch /model at all.

  • The vast majority of everyday tasks
  • Reading and mapping a repo
  • Anything you want back fast

SuperSmart

For the especially heavy stuff, when a task is worth slowing down for.

  • Multi-file refactors
  • Debugging something non-obvious
  • Tasks with real tradeoffs to weigh
Coming soon

UltraSmart

The unhinged one, maximum reasoning horsepower for the task you'd otherwise do yourself. Coming soon.

  • Architecture-level decisions
  • The hardest problem in the queue
  • When being right matters more than being fast

The time machine

Reversibility is ours, not yours.

A shadow git repository of her own: its git directory lives in her cache, its worktree is your workspace. Your .git, index, refs, hooks, is never touched.

  • Every write is checkpointed

    Before a write tool runs, the workspace is snapshotted. Not "most of the time", before every one.

  • Your git stays yours

    Her commits are signed with her own identity, hooks disabled, and inherited git environment variables are scrubbed so a snapshot can never land in your repository.

  • A rollback is itself undoable

    Rolling back snapshots the pre-rollback state first, so undoing the undo is one command away.

  • It never blocks the work

    No git binary, init failure, disk full, the time machine degrades to an honest message instead of stopping you.

~/projects/apiA real session transcript

webbee

rename the auth helper and update every caller

checkpoint cp-7 · before edit_file

edit_file src/auth/helper.ts

multi_edit · 6 files

tests 214 passed

// not what you wanted? one command, and it never happened.

/checkpoints // list the snapshots of this session

/rollback // put the workspace back, the rollback is itself undoable

workspace restored to cp-7 · your .git untouched

Type a task: Webbee runs it to completion

⠹ working · checkpoint·snapshot · 12s · 7 · 41.2k tok · Esc/Ctrl-C to stopwebbee 0.3.50

Not a chat about your code

She reads, writes and runs, in your working directory.

No pasting files into a box and pasting the answer back. She opens the real files, runs the real tests, and reads the real output, then fixes what the output actually said.

Her hands

15 tools · 5 groups

She reads the real files in your working directory, not a summary someone pasted into a chat.

  • read_file
  • grep
  • glob

Several tasks at once, without them colliding.

  • A second tab in the same repo gets its own checkoutOpen a second session against a repo another tab already holds and she gives that tab its own git worktree, so two parallel tasks can't overwrite each other.
  • It fails soft, never loudNo git, not a repo, a dirty ref, disk full, the tab still opens on the shared checkout with an honest note.
~/projects/apiReal commands

/tabs // see every session tab

/new // start another task in parallel

/queue // line work up while she's busy

tab 2 · ~/.cache/webbee/worktrees/api-7f3c1a, its own checkout

Type a task: Webbee runs it to completion

⠹ working · pytest -q · 12s · 7 · 41.2k tok · Esc/Ctrl-C to stopwebbee 0.3.50

The part no other terminal agent has

She codes with the rest of your work in reach.

Other terminal agents see a folder. Webbee reaches the apps you already connected to Imperal, so the bug report, the note and the task are part of the same turn as the fix.

  • Mail

    Read the crash report a customer mailed me and fix what it describes.

  • Tasks

    Close the ticket for this bug and write what the fix was.

  • Notes

    Save how this deploy works, so future me doesn't re-learn it.

Steer her from anywhere, mid-task

An instruction sent from Telegram or the panel while she is idle is picked up and run on the next tick. The terminal stays the only thing executing.

Every one of those still runs through the same gate: anything that writes, sends or spends stops and asks you first.

~/projects/apiReal asks, mail · tasks · notes

Read the crash report a customer mailed me and fix what it describes.

mail · reached through your connected app

Close the ticket for this bug and write what the fix was.

tasks · reached through your connected app

Save how this deploy works, so future me doesn't re-learn it.

notes · reached through your connected app

Anything that writes, sends or spends stops here and asks you first.

Type a task: Webbee runs it to completion

⠹ working · mail·search · 12s · 7 · 41.2k tok · Esc/Ctrl-C to stopwebbee 0.3.50

One Webbee, any window

Walk away mid-task. Approve it from your phone.

The terminal, your messenger, the panel, your own code, the same Webbee, one memory, one context. Answer a consent card wherever you are and the run picks up where it stopped, instead of starting over. A surface is a connector: Telegram ships today, Discord is next on the same seam.

  • Your terminalWhere the code is. She reads, writes and runs it here, in your working directory.
  • Your messenger: Telegram todayApprove a consent card from your phone and the terminal unfreezes and carries on, the answer travels, the work never restarts. A messenger is an adapter, not the product: Telegram is the one shipped, Discord is next on the same seam.
  • The panelSteer the running session, watch the steps, or take over. Same memory, same context, same Webbee.
  • Your own codeThe API is a surface like any other, drive the same Webbee, with the same memory and the same consent gate, from a script or your own product.

Webbee

streaming into your messenger

Can I approve this from my phone if I have to step away?

Yep: I'll stream the confirmation card into this exact chat and wait right here. Nothing runs until your reply lands.

2-Step Confirmationwrite

Deploy the migration to staging, this drops a column.

hosting·run_migration

  • web-server · staging · migrations/0042_drop_legacy_col
Confirmed
✅ Approved

Terminal unfroze and kept going, same session, same memory, nothing restarted.

Two lines, and she’s in your terminal.

~/projects/apiwebbee 0.3.50

pipx install webbee

webbee

Ready. What are we building?

Type a task: Webbee runs it to completion

mode: default · model: Smart · 3.4k tok · 1.2M credits this session · ▶ 1 runningwebbee 0.3.50

What that means for your machine

  • Risky and paid actions ask before they run, you stay in control.
  • Personal details are masked before they reach the model.
  • Encrypted in transit.
Audit & security

The model proposes. The kernel decides. The key, delete, drop, wipe, stays with you.

imperal.io