kendex.ai

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

VerbDoes
add (or bare kendex <source>)install agents, skills and more from a source
removeremove installed items; --sweep also drops what nothing needs anymore
adoptrecord an observed item into the manifest, so kendex owns it from now on
applymake disk match declaration, orphan cleanup included; --plan previews
refreshre-resolve sources and regenerate every declared installation
verifycheck installs against the lock; exit 1 on any drift
list (ls)list everything observed on this machine
checkdrift status: exit 0 clean, 1 drift, 2 could not check — or validate a catalog with --catalog
showa package's files, one file, its readme, or where it came from
diffwhat changed between two versions of a package
versionsthe versions a package's source offers
pinhold an item at a version, or --follow its source again
updateswhich packages have newer versions; --apply takes them, ignore silences one
forkkeep an install you have edited as your own local package
findingswhat the safety check found in installed content, with the token that dismisses each
dismissrecord that a finding is not a problem, by its token
decisionsevery recorded safety decision and whether it still applies; --revoke takes one back
guardcommit-time quality guards, and the git hooks that run them
drift-hookinstall the session-start drift report hook for a scope
source add/remove/enable/disable/list/refreshdeclare, toggle and refresh marketplaces
project add/remove/list/discoverthe app's registry of kendex-enabled projects
reportfile an issue about an installed asset, routed to whoever owns it
importmigrate v1 manifests and locks (the originals go to the trash)
initscaffold a new catalog item in the current directory
updateself-update from the release feed
update-piupdate 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.