The recommended install path is the Claude Code plugin marketplace
(/plugin marketplace add daypunk/LockedIn / /plugin install lockedin@lockedin). Most users never need anything below.
This document is for power users who want a deterministic CLI for:
- CI smoke tests against vault state.
- Scripted vault seeding from a YAML fixture.
- Validating a vault's schema in a build pipeline.
- Migrating older vaults forward to the latest schema.
- Inspecting a denormalized "experience" view for a person.
uv tool install lockedin(Or pipx install lockedin if you prefer.)
The CLI splits cleanly into two groups:
- Skill-only commands: typing them in a plain terminal prints a redirect message pointing back at Claude Code, because they need an LLM in the loop.
- Pure CLI utilities: deterministic, no LLM, run anywhere.
lockedin init --fixture seed.yaml # deterministic vault seed
lockedin ingest <path> --dry-run # diff preview only
lockedin validate # check vault against schema
lockedin migrate # upgrade vault to latest schema
lockedin experience <slug> # denormalized view for a person
lockedin doctor # diagnose runtime
lockedin hud # one-line statusLine snippet
lockedin install --check # manual fallback skill installerDefault vault path: ~/Documents/LockedIn/. Override with --vault PATH
or LOCKEDIN_VAULT.
lockedin init # interactive Q&A
lockedin ingest <path> # smart ingest with ambiguity Q&A
lockedin render resume --target ... # writer + reviewer turns
lockedin render jaso --company ... # writer + reviewer turns
lockedin query "<text>" # natural-language vault queryThe skill (host AI inside Claude Code) does all reasoning. The CLI does
all deterministic work. They share the same vault on disk and the same
schema. See docs/architecture.md for the full diagram.
GitHub Actions does not run Claude Code, so deterministic checks (schema validation, fixture seeding, diff previews) need to run as plain Python. The same CLI is what the skill calls via Bash whenever a step does not need an LLM.
The CLI version tracks the plugin version. Manual install commands
(lockedin install --auto-register) write a .lockedin-manifest.json
in the installed skill directory; this is hash-aware so --upgrade will
refuse to overwrite locally-edited skill files without --force. The
plugin marketplace install handles versioning natively.