SkillBench session collector for local AI coding sessions
Project description
session-collector
Collect and analyze your AI coding sessions locally. No data leaves your machine until you share the sanitized export.
Supports local session collection from Claude Code, Gemini CLI, and Codex.
Prerequisites
Install once, on the host:
- GitHub authentication — either install the GitHub CLI or use a Personal Access Token:
ghCLI:brew install gh && gh auth login(macOS) /sudo apt install gh && gh auth login/ cli.github.com- Or set
GH_TOKEN=<personal access token>before running — see docs/gh-token.md for scopes and safe handling.
- git — needed to read remotes from your project folders.
- Python 3.9+ and pipx:
- macOS:
brew install pipx && pipx ensurepath - Debian / Ubuntu:
sudo apt install pipx && pipx ensurepath - Any Python:
python3 -m pip install --user pipx && python3 -m pipx ensurepath
- macOS:
- (Docker workflow only) Docker — macOS / Linux / Windows via Docker Desktop.
Want to skip the GitHub check entirely and rely only on manual private-repo selection? Run
ALLOW_NO_GH=1 make docker-collect.
Getting started
Pick whichever fits your setup — they produce the same sanitized export.
Install from PyPI (recommended)
pipx install skillbench-session-collector
skillbench collect # all orgs
skillbench collect --allowed-orgs your-company your-username # restrict scope
To upgrade later:
pipx upgrade skillbench-session-collector
One-liner install (macOS / Linux)
Installs the published package via pipx:
curl -fsSL https://raw.githubusercontent.com/SkillBench-AI/session-collector/main/install.sh | bash
The installer does not clone this repository. It checks Python 3.9+ and pipx,
then runs pipx install --force skillbench-session-collector.
One-liner collect (macOS / Linux)
Installs the published package via pipx and runs skillbench collect in one
step:
curl -fsSL https://raw.githubusercontent.com/SkillBench-AI/session-collector/main/collect.sh | bash
Re-runs later (no installer needed):
skillbench collect # all orgs
skillbench collect --allowed-orgs your-company your-username # restrict scope
Docker
git clone --depth 1 https://github.com/SkillBench-AI/session-collector.git
cd session-collector
make docker-collect # public + OSS repos only (safe default)
make docker-collect-all # also include private / unlicensed workspaces (opt-in)
Restrict collection to specific GitHub orgs (e.g. your company + personal account):
make docker-collect ALLOWED_ORGS="your-company your-github-username"
Prefer a token to installing gh? Prefix the same command with GH_TOKEN=...
(leading space keeps it out of shell history). See docs/gh-token.md
for token scopes and safe handling.
Codex workflow (recommended)
For Codex users we recommend the high-level skillbench codex surface plus
skillbench doctor for setup checks. These wrap the lower-level daemon-*
commands in friendlier names and add a one-command happy path.
One-command installer
curl -fsSL https://raw.githubusercontent.com/SkillBench-AI/session-collector/main/install.sh | bash
The installer checks for Python 3.9+ and pipx, then installs
skillbench-session-collector so skillbench ends up on your PATH.
Health check
skillbench doctor
Verifies Python version, that the CLI is on PATH, that Codex session
directories exist, that sessions were detected, and that the local SQLite
database and dist/ are writable. Each failure includes a remediation hint.
One-command happy path
skillbench codex collect --allowed-orgs your-company your-github-user
Runs scan + a single ingest pass + a sanitized export in one step:
SkillBench Codex collection complete.
Scanned sessions: 14
Daemon updates: inserted=8 updated=0 unchanged=0 removed=0 failed=0
Exported sessions: 8
Sanitized export written to:
dist/skillbench_daemon_export_sanitized.json
Friendly aliases
| User-facing command | Wraps |
|---|---|
skillbench codex scan |
daemon-scan |
skillbench codex status |
daemon-status |
skillbench codex watch |
daemon-run |
skillbench codex export |
daemon-export |
skillbench codex collect |
scan + run-once + sanitized export |
skillbench codex locate-sessions |
diagnose scanned=0 |
skillbench codex plugin-install |
clone marketplace + register with Codex |
Codex plugin install
skillbench codex plugin-install
Clones (or refreshes) the SkillMeter Codex marketplace and runs
codex plugin marketplace add for you. After it finishes:
1. Open Codex
2. Run /plugins
3. Install SkillMeter
4. Start a fresh Codex thread
5. Try @skillmeter check my collector status
Pass --dry-run to see the commands without executing them.
Saved config
Avoid passing --allowed-orgs every time:
skillbench config set codex.allowed_orgs your-company your-github-user
skillbench codex collect # uses saved orgs automatically
skillbench config show prints the current values. The file lives at
~/.skillbench/config.json (override with SKILLBENCH_CONFIG=...).
Troubleshooting scanned=0
skillbench codex locate-sessions
Probes every well-known Codex session root and reports per-path counts. If
your sessions are stored elsewhere, point the tooling at them with
--base-dir /path/to/codex/sessions or save it via
skillbench config set codex.base_dir /path/to/codex/sessions.
Raw exports
Sanitized export is the default. To produce a raw, un-sanitized export you must opt in explicitly:
skillbench codex export --raw --i-understand-this-may-include-sensitive-data
SKILLBENCH_ALLOW_RAW_EXPORT=1 skillbench daemon-export --raw
Without the flag (or env var) the CLI refuses to write a raw export.
Lower-level daemon commands
The original daemon-* commands are still available for power users:
skillbench daemon-scan
skillbench daemon-run --interval 30
skillbench daemon-status
skillbench daemon-export --allowed-orgs your-company your-username
Equivalent Make targets exist (make daemon-scan, make doctor,
make codex-collect ALLOWED_ORGS="...", make codex-plugin-install).
Output & upload
Sanitized weekly exports land in dist/ on your host
(e.g. dist/skillbench_export_sanitized_2026_W16.json). Drag-and-drop those
files — and only those — into the Upload Data page of your SkillBench
dashboard. The sanitizer redacts API keys, emails, private IPs, home paths,
and other common secrets before writing.
The dashboard URL is shared separately by your SkillBench point of contact. If you don't have it yet or you run into issues, reach out to the SkillBench team.
More
- Using
GH_TOKENwithout installinggh: docs/gh-token.md - Privacy & data policy: docs/privacy.md
- Flags, Makefile knobs, step-by-step pipeline, CASS mode: docs/details.md
- Publishing releases: docs/releasing.md
- Recent changes: commit history.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skillbench_session_collector-0.1.0.tar.gz.
File metadata
- Download URL: skillbench_session_collector-0.1.0.tar.gz
- Upload date:
- Size: 85.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f06f6159c2d7c00b94c9a0c6671278d63e05e192a5e9e8a33a07dfb62ca5056c
|
|
| MD5 |
a1fa7146815ea3651918f1da798dc672
|
|
| BLAKE2b-256 |
b35ee2fc41eede9c5f3babde7d3df216bde307ddec54e4b8cfc21b95648b7ac7
|
Provenance
The following attestation bundles were made for skillbench_session_collector-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on SkillBench-AI/session-collector
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skillbench_session_collector-0.1.0.tar.gz -
Subject digest:
f06f6159c2d7c00b94c9a0c6671278d63e05e192a5e9e8a33a07dfb62ca5056c - Sigstore transparency entry: 1704648188
- Sigstore integration time:
-
Permalink:
SkillBench-AI/session-collector@087745652098038cd3f7c50d659492705fdbaa09 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/SkillBench-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@087745652098038cd3f7c50d659492705fdbaa09 -
Trigger Event:
release
-
Statement type:
File details
Details for the file skillbench_session_collector-0.1.0-py3-none-any.whl.
File metadata
- Download URL: skillbench_session_collector-0.1.0-py3-none-any.whl
- Upload date:
- Size: 71.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4501534fdd4b273de31abb5ad8593cc0fed94782537dd53691556dc9157f3b9
|
|
| MD5 |
98bfad3e295a5a89978524934e8ac707
|
|
| BLAKE2b-256 |
347ddbca9a2eadc0c0275b16e524032cb165f9de0a189e4c623b1d90d4805339
|
Provenance
The following attestation bundles were made for skillbench_session_collector-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on SkillBench-AI/session-collector
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skillbench_session_collector-0.1.0-py3-none-any.whl -
Subject digest:
c4501534fdd4b273de31abb5ad8593cc0fed94782537dd53691556dc9157f3b9 - Sigstore transparency entry: 1704648206
- Sigstore integration time:
-
Permalink:
SkillBench-AI/session-collector@087745652098038cd3f7c50d659492705fdbaa09 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/SkillBench-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@087745652098038cd3f7c50d659492705fdbaa09 -
Trigger Event:
release
-
Statement type: