truen-connect
v0.7.0
Published
Truen connect CLI — derives AI collaboration signals from local Claude Code data and uploads them to your Truen profile. Raw transcripts never leave your machine.
Readme
truen-connect
Connects your local Claude Code usage to your Truen profile as evidence for the AI Collaboration verdict.
What it does — and doesn't — upload
The CLI scans your local Claude Code data (~/.claude/projects/**/*.jsonl session
transcripts plus your skills — personal and per-project — hooks, MCP servers, and
global/per-project CLAUDE.md files) entirely on your machine and derives
per-session signals: prompt sophistication, plan-then-execute
behavior, steering/correction rate, MCP/skill/subagent usage, session depth, and corpus
span/volume.
What uploads after your explicit confirmation:
- the derived per-session signal numbers
- tooling names only (skills, MCP servers, hook events)
- a small capped set of short prompt excerpts (≤3 per session, ≤60 total, ≤280 chars each), redacted for secrets/env values and shown verbatim in the preview
Raw transcripts never leave your machine. The preview shows exactly what will
upload; nothing is sent until you type upload.
Usage
First sync (pairs this machine):
- Open your Truen profile at
/student/profileand generate a connect code (valid 10 minutes, single-use). - Run:
npx truen-connect- Review the preview, type
upload, paste your connect code.
Pairing stores a revocable device token in ~/.truen/credentials.json
(owner-only permissions; the server keeps only its hash). Every later sync is
just npx truen-connect again — preview, type upload, done. Profile
regeneration is queued automatically after each successful sync; revoke the
device any time from /student/profile or with --forget.
Options
--server <url> Truen server (default: $TRUEN_SERVER_URL or https://truen.co)
--code <code> Connect code (prompted interactively if omitted)
--dry-run Scan and preview only — uploads nothing
--forget Delete the stored device token for this server and exitDevelopment
npm install
npm run dev -- --dry-run # run from source
npm run build # bundle to dist/ (tsup)
node dist/index.js --dry-runThe upload payload contract mirrors src/lib/ai-signals/schemas.ts in the main repo
(that copy is canonical); the server validates every upload against it.
