The command line
The CLI and the desktop app are the same engine. Anything the app does can be done from a terminal, and nothing in either requires an account.
Quick start
kendex owner/marketplace-repo --agent rust --skill github # declare + install
kendex list # what exists, everywhere
kendex verify # non-zero exit on drift
kendex refresh # regenerate from sources
kendex adopt skill handmade # bring an unmanaged item under management
kendex apply --plan # preview the full reconcile
Every verb
| Verb | Does |
|---|---|
add (or bare kendex <source>) | install agents, skills and more from a source |
remove | remove installed items; --sweep also drops what nothing needs anymore |
adopt | record an observed item into the manifest, so kendex owns it from now on |
apply | make disk match declaration, orphan cleanup included; --plan previews |
refresh | re-resolve sources and regenerate every declared installation |
verify | check installs against the lock; exit 1 on any drift |
list (ls) | list everything observed on this machine |
check | drift status: exit 0 clean, 1 drift, 2 could not check — or validate a catalog with --catalog |
show | a package's files, one file, its readme, or where it came from |
diff | what changed between two versions of a package |
versions | the versions a package's source offers |
pin | hold an item at a version, or --follow its source again |
updates | which packages have newer versions; --apply takes them, ignore silences one |
fork | keep an install you have edited as your own local package |
findings | what the safety check found in installed content, with the token that dismisses each |
dismiss | record that a finding is not a problem, by its token |
decisions | every recorded safety decision and whether it still applies; --revoke takes one back |
guard | commit-time quality guards, and the git hooks that run them |
drift-hook | install the session-start drift report hook for a scope |
source add/remove/enable/disable/list/refresh | declare, toggle and refresh marketplaces |
project add/remove/list/discover | the app's registry of kendex-enabled projects |
report | file an issue about an installed asset, routed to whoever owns it |
import | migrate v1 manifests and locks (the originals go to the trash) |
init | scaffold a new catalog item in the current directory |
update | self-update from the release feed |
update-pi | update Pi extension packages |
Scopes
A scope is where something lives: project is the repository you are standing
in, global is your home directory, all is both. Twenty of the twenty-six
verbs take --scope, with the v1-compatible aliases p/local, g/user,
and both/*. -g is shorthand for global.
The default follows what the verb is for. Verbs that survey the whole machine
(list, check, findings, decisions, import) default to all. Verbs
that act on one package default to project. report takes project or global
but rejects all, because an issue is filed about one install.
Six verbs take no --scope: add and init, update, and the grouped
source, project and guard. add picks its scope with -g instead.
Personal setup lives in your home directory and follows you between machines when you sync it; project setup lives in the repository and travels with it.
Coming from v1
kendex import migrates v1 manifests and locks in place. The originals are
copied to the trash first. Then kendex refresh regenerates everything from
them.
These pages are the kendex app’s own documentation. The source lives in the repository.