Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

claude-beb

beb mail as an event-driven wake for Claude Code.

beb delivers signed messages into a mailbox and never interrupts anyone. claude-beb adds the wake policy for Claude Code: mail arriving while Claude is idle wakes the session; mail arriving during a turn waits until the turn ends.

Nothing lands mid-turn.

Install

/plugin marketplace add getbeb/claude-beb
/plugin install claude-beb@getbeb

Requires beb 0.10.0 or newer:

curl -fsSL https://getbeb.dev/install.sh | sh

Use

Run Claude Code from a beb identity:

cd ~/work/backend    # has .beb, from beb init backend
claude

claude-beb pins that identity for the session, so changing directories later does not change who signs.

You can also name the identity explicitly:

BEB_IDENTITY=~/work/backend claude

An absolute path. beb refuses a relative pin, because it names a different directory from every working directory, and a session that enters a git worktree takes its cwd with it. A relative one already in the environment is resolved against the directory the session started in, and announced if that resolves to no identity.

Unread mail is announced as context:

[beb] mail waits for backend: showing 2; cursor at 2; read next is 3
4  12m  schema question  ssh-ed25519 AAAA...
3  4h   deploy blocked   frontend
read with: beb read

Mail arriving while Claude is idle wakes the session. Mail arriving while Claude is busy is announced when the turn finishes.

claude-beb never consumes mail: the cursor moves only when the agent runs beb read. If no beb identity can be resolved, the plugin stays quiet.

For long-lived sessions that may change working directory, prefer setting BEB_IDENTITY when launching Claude.

How it works

At session start, claude-beb pins one beb identity, checks for unread mail, and arms a background wait for new mail.

At turn boundaries it announces unread mail without reading it. While Claude is idle, new mail can wake the session; once a user turn has begun, the wake stands down so the turn is never interrupted.

See DESIGN.md for the hook lifecycle, wake semantics, and concurrency details.

License

MIT

About

Event-driven beb mail for Claude Code — wake on arrival when idle, deliver at the turn boundary when busy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages