Current as of telekit 0.64.6. Also in commands.json. --json on persona, skill, inbox, and access-style list verbs when a program will parse stdout.

Auth and profiles

CommandNotes
auth set-tokenPrompt; stores the token in the Keychain
auth claim [--wait N]Flush, wait for /claim, confirm. Refuses if the daemon is loaded
auth set-owner <chat_id>Positive private id
auth statusUsername, masked owner, daemon
profile list
profile add <slug>Prompt for that bot’s token
profile set-token <slug>Rotate
profile enable|disable <slug>
profile rm <slug> [--delete-token --yes]
profile status [slug]

Personas

CommandNotes
persona list [--json]
persona show <id-or-title> [--json]
persona add [--id] --title T [--display-name N] (--body | --file | --from-dir)
persona set <id> (--title | --display-name | --file)
persona apply <id> <profile> [profile…]Next turn
persona unapply <profile> [profile…]
persona rm <id> --yesNot the builtin
persona reset-builtin [id]Restores the packaged copy. Errors and leaves your files if this install has no packaged persona.
persona new-file <id> <rel> [--body]
persona rm-file <id> <rel> --yesRefuses PERSONA.md

Skills

CommandNotes
skill list [--json]Global catalog
skill show <id-or-name> [--json]
skill add (--file SKILL.md | --name N --body T)Reserved ids refused
skill set <id> (--file | --name | --description)
skill import PATH [--force]Dir or zip, SKILL.md required
skill rm <id> --yesNot the builtin CRUD skill
skill reset-builtin [id]
skill new-file / skill rm-fileSame shape as persona files

Bot users

These operations return the version 2 JSON result and require --profile P. See Access for discovery, node grants, removal and individual user access.
CommandPurpose
bot-users capability --profile PCheck the live bridge.
bot-users list --profile PList users and available nodes.
bot-users begin --profile PStart discovery.
bot-users status --profile P --session SRead discovery.
bot-users cancel --profile P --session SCancel discovery.
bot-users confirm --profile P --session S --user ID --node NODEAdd the detected member. Repeat --node for more nodes.
bot-users remove --profile P --user IDRevoke this bot’s access.
bot-users set-enabled --profile P --user ID --mode on|offResume or pause one user on this bot.
bot-users confirm --profile P --session S --user ID --all-nodesAdd with current and future eligible nodes.

Access, send, passcode

CommandNotes
access list [--profile P]
access add-user <id> [--label] [--node] [--thread] [--profile]
access grant <id> <node> [--thread] [--profile]
access revoke <id> <node> [--profile]
access multi-user [on|off]Telegram members are always enabled. Off returns an error; use individual bot user controls.
group add --id=-100123 --member <id> --node <name> [--label] [--profile]Repeat --member for every human. Write the id as --id=-100123. --node is the working folder. --profile picks the bot.
group list [--profile]Ids, chime, folder, Jev key, and Telegram’s member count. A mismatch means the bot stays silent.
group rm --id=-100123 [--profile]
group add-member --id=-100123 <user_id> [--profile]A person who joined.
group rm-member --id=-100123 <user_id> [--profile]A person who left.
group ignore-bot --id=-100123 <bot_id> [--profile]Another bot already in the group. Not a person.
send [TEXT] [--file PATH]… [--as-document] [--profile] [--user|--owner] [--yes]Dry-run without --yes
passcode set / status / clear --yes
passcode relock-on-new|restart|node-switch|thread-switch [on|off]

Daemon and config

CommandNotes
inbox [--json]Debug poll
daemon run / daemon status
install [--voice|--no-voice] / restart / uninstallFresh macOS installs set up local voice transcription. --voice retries or re-enables; --no-voice disables it and saves that choice. Linux and Windows installs leave voice off by default.
ack set-key / ack set-model / ack statusOpenRouter
jev set-key / jev status / jev clearTypeSafe / Jev. Same Keychain item as the Mac app Settings › Agent
config show / config timeout [--idle] [--max]
config handoff [instant|ai]What /harness carries to the new harness. Prints handoff: <mode>
voice setup [--model NAME] [--command JSON] [--yes]Enable local voice transcription after a self-test. First setup uses large-v3-turbo-q5_0; base.en is smaller and English only. Later setups keep the chosen model or custom command unless changed. --yes permits Homebrew to install missing ffmpeg and whisper.cpp.
voice status [--json]Show voice setup, echo, local dependencies, last self-test, and last failure; --json is for installers
voice echo on|offShow or hide the full transcript preview. Off unless you opt in
voice keep on|offKeep or delete the original voice file after the turn. Deleted unless you opt in
voice test PATHTranscribe one local audio file and print the text and time
voice offDisable transcription; keep the local model
lane statusTelekit harness: credits vs OpenRouter, and whether the key is set
lane use credits|openrouterWho pays for Telekit-harness turns
lane set-keyStore the key for the current lane mode (tk_ or sk-or-)
init-skill [--target]Harness how-to, not bot packs
self-update [--check|--force]Compiled installs only