Disable session-sync and stop the background daemon
Enable session-sync (uploads conversations to Effective)
Pause session-sync uploads (daemon keeps running)
Show session-sync status (config, daemon, per-file sync state)
A Claude Code plugin that syncs your Claude Code conversations to Effective sessions.
session-sync watches your Claude Code transcript files and uploads new
conversation events (prompts, responses, code, commands, and tool output) to the
Effective backend so your sessions show up in Effective.
The plugin never uploads on the conversation critical path. A single
machine-level background daemon tails the Claude Code transcript .jsonl files
and uploads deltas out of band. The only thing that runs during your session is
a SessionStart hook performing a sub-50ms "ensure the daemon is running"
healthcheck — it spawns the daemon detached if needed and returns immediately.
The daemon polls the transcript directory every ~3 seconds, reads only the bytes
appended since its last cursor, redacts secrets, and PUTs the session then
POSTs the new events. Nothing in this path can slow down or block your
conversation.
Add this repo as a marketplace and install the plugin:
/plugin marketplace add effectiveailabs/effective-claude-plugin
/plugin install session-sync@effective
Then enable syncing with your Effective API key:
effective enable --token sk-eai-...
enable prints a consent disclosure describing exactly what is uploaded, writes
config, and starts the background daemon.
You can also use the slash commands: /effective-enable, /effective-status,
/effective-pause, /effective-disable.
Transcripts include your prompts, Claude's responses, code, file contents, shell
commands, and tool output. Before upload, each line is scanned and secrets
matching common patterns are replaced with [REDACTED]:
sk-... style API keysAKIA...)ghp_, gho_, ghu_, ghs_, ghr_)Bearer ... tokenspassword=, api_key=, secret=, token= style assignmentsThis is best-effort and not a guarantee that all sensitive data is removed.
You can add your own regex patterns via the redact array in config.json.
effective pause # keep the daemon running but stop uploading
effective resume # resume uploading
effective disable # stop uploading and stop the daemon entirely
effective status # show config, daemon state, and per-file sync progress
By default, under $HOME/.config/effective-sync/ (override with the
EFFECTIVE_SYNC_HOME environment variable):
config.json — apiBase, token, enabled/paused flags, extra redact patternsstate.json — per-file sync offsets, sequence counts, cursors, last errordaemon.pid — single-instance lockdaemon.log — daemon activity and errorsTranscripts are read from ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects.
The daemon watches multiple agent transcript sources and tags each uploaded
batch with its source:
~/.claude/projects/**/*.jsonl (override the root with
CLAUDE_CONFIG_DIR)~/.codex/sessions/**/rollout-*.jsonl (override the root
with CODEX_HOME)MIT © Effective AI Labs
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub effectiveailabs/effective-claude-plugin --plugin session-syncMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Easily create hooks to prevent unwanted behaviors by analyzing conversation patterns