neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
sessionpipe Claude Code, Codex 등 한 번 설치로 연동
One install hooks Claude Code, Codex, Gemini CLI, Antigravity and more. Four privacy tiers, secrets removed on your machine, sent to your server or to none.
개발 도구TypeScript · JavaScriptGitHub @spacesheep-dev온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기An open protocol and client for what your coding agents are doing: hooks for every harness, four privacy tiers, any sink.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An open protocol, and a client, for what your coding agents are doing. One
install hooks Claude Code, Codex, Gemini CLI, Antigravity and more; every event is
filtered to a privacy tier you choose per destination, secrets are removed on your
machine before anything leaves it, and it goes to your server, to a file, or nowhere
at all.README 전문 보기 ↗An open protocol, and a client, for what your coding agents are doing. One install hooks Claude Code, Codex, Gemini CLI, Antigravity and Devin; every event is filtered to a privacy tier you choose per destination, secrets are removed on your machine before anything leaves it, and it goes to your server, to a file, or nowhere at all. Messages come back the same way: answer a permission or queue the next prompt from your phone, signed by your passkey and checked on the machine.
Status: pre-release, spec Draft until two independent receivers pass the conformance suite. On npm:
sessionpipe(the CLI),sessionpipe-core,sessionpipe-receiver,sessionpipe-conformance, published unscoped until the@sessionpipeorg exists. See ROADMAP.md and the changelog.
To a receiver that offers pairing, one command per machine:
npx sessionpipe connect your-receiver.example
It shows six digits; approve them on any phone or computer where you're signed in to
the receiver (it doesn't have to be this machine). That one approval is the whole
setup: the hooks for every agent and every Claude Code account here, a sink at tier 2,
signed messages from your devices, the keys in your keychain when this session has one
unlocked, a background daemon that keeps running after you log out, and the last 30
days backfilled. It asks nothing else; run it again and it only fixes what's missing.
The daemon keeps sessionpipe up to date by itself, installing a new release once a day
at most and only when it's idle (sessionpipe update off stops that; see
the CLI's README).
In the Claude desktop app, ask the session to run sessionpipe wait as a background
command. Messages from your devices then arrive in that session, in the app, with no
claude command or separate sign-in
(Get started).
Or only the hooks, with nothing sent anywhere:
npx sessionpipe install
That detects the harnesses on your machine, writes their hooks, and backfills the last 30 days of sessions into a local outbox. Nothing is sent anywhere until you add a sink:
sessionpipe sink add https://your-receiver.example --tier 1
sessionpipe tail # watch events locally, no server needed
git clone https://github.com/spacesheep-dev/sessionpipe && cd sessionpipe
npm ci --ignore-scripts && npm run build && npm test
npm pack -w sessionpipe
npm install -g --prefix ~/.local sessionpipe-*.tgz # ~/.local/bin on PATH; never the clone itself
sessionpipe install
The CLI tarball bundles core, so it needs no other package. Don't npm link the
clone: the hooks would point into it, and moving the clone would break every harness.
$ sessionpipe tail --tier 1
sessionpipe tail · tier 1 · ~/.local/state/sessionpipe/outbox (Ctrl-C to stop)
02:56:19 codex 01a0… session.started source=startup ~/spacesheep main
02:56:20 codex 01a0… turn.started prompt_chars=147
02:56:20 codex 01a0… tool.started Bash
02:56:21 codex 01a0… tool.ended Bash ok
02:56:21 codex 01a0… turn.ended stop
02:56:22 codex 01a0… session.ended reason=other
(A real Codex 0.157.1 run on 28 Sep 2026, through the hook, the worker and the outbox.)
One adapter file each, under packages/core/src/adapters/,
the only vendor-specific code in the tree. A harness is in the registry once it has
fixtures recorded from real hook payloads (conformance/harness/).
| Harness | Hooks | Transcript (tier 2) | Facts read | Fixtures |
|---|---|---|---|---|
| Claude Code | 14 events | the session's .jsonl, mid-turn messages included | title, url, model, account, per config dir | 21 |
| Codex CLI, Codex Desktop | 12 events + notify | the thread's rollout; forks, never subagents or ephemeral threads | title, model | 15 |
| Gemini CLI | 8 events | the chat log | title, model | 14 |
| Antigravity | 4 events | brain/<id> messages | title, url to the conversation, in a git checkout too | 8 |
| Devin CLI | 8 events | its SQLite session store, read-only | title, model, times | 8 |
Next in the registry (ADAPTERS.md): Cursor, Copilot CLI, Droid, Kiro, OpenCode.
Each sink is configured at a tier; the receiver declares its maximum; the lower wins.
| Tier | What leaves | Who it is for |
|---|---|---|
| 0 | Session ids, state, timing, machine, repo, branch, model, title; attention kind | A presence board: "working / needs you / done" |
| 1 | + tool names, durations, ok/error, file paths, attention message, subagents, compactions, account limits | An activity feed |
| 2 | + your prompts and the assistant's text (turn.transcript), a running turn as it runs (turn.progress) | Memory, search, recaps |
| 3 | + tool input and output, thinking, raw hook lines | Full replay, your own server only |
The secrets ruleset runs on every string above tier 0 and cannot be turned off; PII
reduction is a second, opt-in pass. sessionpipe tail shows exactly what a tier
sends. Provided as-is; check what a sink receives with sessionpipe tail before
you point it anywhere.
A receiver carries commands; it can never forge one. Every command is signed on your device with a passkey, or with a desktop or phone app's device key held in hardware (or a day key either one vouched for), and the machine checks the exact bytes against keys enrolled at its own terminal, the nonce, the age, the folder allowlist, and that a permission you answer is still open. Then it delivers through the harness's own documented hooks: a message for the next turn, a permission answer while the terminal shows its prompt (nothing is ever auto-allowed), a cancel, or a new session started headlessly for any harness the machine can drive, with files if the command carries them. CONTROL.md has every rule and refusal code; 136 shared vectors pin them.
sessionpipe control pair https://your-receiver.example # once, at the machine's own terminal
sessionpipe control folders add ~/work # where messaged sessions may run
sessionpipe control mode safe # or auto or inherit; what a messaged session may do
The same daemon can keep several Claude accounts behind one loopback listener, so a
Claude Code session keeps going when one account's limit is reached: sessionpipe pool add --import, then sessionpipe pool on. A request goes to the first account in your
order that has room, a session stays on its account while it has room, and each
account's numbers arrive as limits.observed with account_id, so a receiver shows
every account's room. Opt-in only, credentials in the machine's own secrets store and
sent only to the vendor (the pool,
CONTROL.md §6 pool).
stdout, the reference receiver on your
laptop, or any HTTPS endpoint that speaks the protocol.| Receiver | Where it runs | max tier |
|---|---|---|
| sessionpipe-gui | your laptop; a board for every phone on the LAN, control included | 3 |
| spacesheep.dev | hosted; sessions across machines, messages from anywhere | 2 |
| sessionpipe-receiver | the reference, one process and JSONL files | 3 |
| any HTTPS endpoint | that speaks HTTP.md: one well-known file, one endpoint, a dedup key | yours |
The full list: sessionpipe.org/receivers.
The fixtures are the contract, and CI refuses what they don't prove.
spec/ | The protocol: envelope, events, tiers, HTTP binding, control channel, adapters, versioning (CC BY 4.0) |
schemas/v1/ | JSON Schemas, generated from the code; also served at https://sessionpipe.org/schema/v1/ |
conformance/ | Real hook payloads per harness, redaction vectors, delivery scenarios, control vectors |
packages/core | sessionpipe-core: types, adapters, privacy filter, outbox, sinks, the control verifier (zero dependencies) |
packages/cli | sessionpipe: connect, install, sink, status, doctor, tail, forget, replay, update, the control daemon |
packages/receiver | sessionpipe-receiver: one process, JSONL files, a page you can answer from a phone |
packages/conformance | sessionpipe-conformance: scores a receiver or an adapter |
website/ | sessionpipe.org, rendered from spec/ |
Read CONTRIBUTING.md. Every commit is signed off under the DCO; there is no CLA. A new harness is one adapter file plus fixtures for every event it handles and a row in ADAPTERS.md. A protocol change starts as a spec proposal with a fixture, then seven days of lazy consensus. Security reports go through SECURITY.md.
Code is Apache-2.0 (LICENSE, NOTICE); the spec is CC BY 4.0 (spec/LICENSE). "sessionpipe" is a mark of Michael Makarov; see TRADEMARKS.md. Governance: GOVERNANCE.md.