Kiket CLI Reference¶
The kiket CLI provides unified tooling for managing marketplace products, developing extensions, validating workflows, and automating platform operations.
Installation¶
Via RubyGems¶
kiket extensions init [PATH]¶
Create or refresh .kiket/manifest.yaml inside an existing repository.
Options:
--extension-id ID– Extension ID to record in the manifest--name NAME– Display name to use (defaults to directory name)--template TYPE– Hook template (customby default)
Requirements¶
- Ruby 3.0 or higher (for local execution of the CLI)
Quick Start¶
Authentication¶
# Login with API token
kiket auth login
# Check authentication status
kiket auth status
# Show current token (hidden by default)
kiket auth token
Configuration¶
# Set default organization
kiket configure set default_org my-org
# View all configuration
kiket configure list
# Set output format (human, json, csv)
kiket configure set output_format json
Command Reference¶
Authentication (kiket auth)¶
Manage authentication and API tokens.
kiket auth login¶
Authenticate with Kiket API using a token.
Options:
--token TOKEN- API token (prompts if not provided)--api-url URL- API base URL (default:https://kiket.dev)
Example:
kiket auth logout¶
Remove stored credentials.
kiket auth status¶
Show current authentication status and user info.
kiket auth token¶
Display the current API token (requires confirmation).
Configuration (kiket configure)¶
Manage CLI configuration stored in ~/.kiket/config.
kiket configure set KEY VALUE¶
Set a configuration value.
Keys:
api_url/api_base_url- API base URLdefault_org/org- Default organization slugoutput_format/format- Output format (human, json, csv)verbose- Enable verbose output (true/false)
Example:
kiket configure get KEY¶
Get a configuration value.
kiket configure list¶
List all configuration values.
kiket configure reset¶
Reset configuration to defaults (requires confirmation).
Marketplace (kiket marketplace)¶
Manage marketplace products and installations.
kiket marketplace list¶
List available marketplace products.
Options:
--all- Show all versions--format FORMAT- Output format (human, json, csv)
Example:
kiket marketplace info PRODUCT¶
Show detailed information about a product.
Example:
kiket marketplace install PRODUCT¶
Install a marketplace product.
Options:
--org ORG- Target organization--dry-run- Show installation plan without executing--env-file PATH- Load secrets from environment file--no-demo-data- Skip demo data seeding--non-interactive- Run without prompts
Secrets captured during the install (via prompts or --env-file) are scoped to the specific installation and extension, so multiple installs of the same product never share credentials.
Example:
kiket marketplace install marketing-ops --org acme-corp
kiket marketplace install marketing-ops --dry-run
kiket marketplace dbt INSTALLATION¶
Show the recent dbt runs triggered for a specific marketplace installation (including extension-provided DBT modules). Runs are scoped per installation, so each tenant has its own analytics pipeline.
Options:
--limit N– Number of runs to display (default: 10).--status STATUS– Filter runs by status (queued,running,success,failure,skipped).
Example:
kiket marketplace onboarding-wizard¶
Scaffold a local blueprint using one of the bundled templates.
Options:
--identifier– Blueprint identifier (letters/dashes only).--name/--description– Human-friendly metadata used to pre-fill the manifest.--template– Definition template underdefinitions/to copy (defaultsample).--destination– Target directory (defaults to./<identifier>).--force– Overwrite the destination if it already exists.
Example:
kiket marketplace onboarding-wizard \
--identifier marketing-ops-preview \
--name "Marketing Ops Preview" \
--template marketing_ops \
--destination ~/code/marketing-ops-preview
kiket marketplace sync-samples¶
Copy one or more sample blueprint repositories locally so you can inspect their .kiket/ definitions.
Options:
--destination– Root folder where blueprint directories will be copied. Defaults to./marketplace-samples.--blueprints– Space-separated list of directories underdefinitions/to copy (default:sample marketing_ops).--force– Overwrite the destination folder if it already exists.
Example:
kiket marketplace upgrade INSTALLATION¶
Upgrade a product installation to a new version.
Options:
--version VERSION- Target version (defaults to latest)--auto-approve- Skip approval prompts
Example:
kiket marketplace uninstall INSTALLATION¶
Uninstall a product.
Options:
--force- Skip confirmation prompt--preserve-data- Keep data after uninstall
Example:
kiket marketplace status [INSTALLATION]¶
Show installation status and health.
Examples:
# Show all installations for default org
kiket marketplace status
# Show specific installation
kiket marketplace status inst-123
kiket marketplace telemetry report¶
Summarize SDK telemetry (usage, latency, error rate) across all published extensions for the last 24h (or a custom window).
Options:
--window-hours N– Lookback window in hours (default 24)--format human|json|csv– Output format for the top extensions table
Example:
kiket marketplace telemetry report
kiket marketplace telemetry report --window-hours 6 --format json
The command prints aggregated request/error counts plus a table of the busiest extensions and recent error summaries.
Extensions (kiket extensions)¶
Extension development toolkit for scaffolding, testing, and publishing.
kiket extensions scaffold NAME¶
Generate a new extension project with opinionated templates.
Options:
--sdk LANGUAGE– SDK language (python,node,ruby)--template TYPE– Template type (webhook_guard,outbound_integration,notification_pack,custom)--extension-id ID– Override the generatedextension.id--ci/--no-ci– Include GitHub Actions workflow (default: true)--tests/--no-tests– Include starter tests (default: true)--replay/--no-replay– Generate replay samples (default: true)--force– Overwrite the target directory if it already exists
Example:
kiket extensions scaffold my-extension --sdk python
kiket extensions scaffold slack-notifier --sdk node --template notification_pack --extension-id com.example.slack
Generated Structure:
my-extension/
├── .kiket/
│ └── manifest.yaml
├── src/
│ └── handler.py
├── tests/
│ └── test_handler.py
├── .github/
│ └── workflows/
│ └── test.yml
├── replay/
│ ├── before_transition.json
│ └── issue_created.json
├── README.md
├── requirements.txt
├── .env.example
└── setup.py
Looking for a ready-made starter? extensions/reference/webhook-guardian inside this repository mirrors the scaffold output (manifest, tests, replay samples, and CI) so you can clone it directly or use it in demos.
kiket extensions lint [PATH]¶
Lint extension manifest and code.
Options:
--fix- Auto-fix issues where possible
Example:
Checks:
- Manifest schema validation
- Required fields presence
- Delivery configuration validity
- Test file existence
- Documentation presence
kiket extensions test [PATH]¶
Run extension tests.
Options:
--watch- Watch for changes and re-run tests
Example:
Detection rules:
- Python projects: looks for
poetry.lock,pyproject.toml,Pipfile, orrequirements.txtand runspoetry run pytest,pipenv run pytest, orpython -m pytestaccordingly. Watch mode falls back toptwwhen it is installed. - Node projects: inspects
package.json+ lockfiles and invokesnpm test,yarn test, orpnpm testwith--watchpass-through. - Ruby projects: detects a
Gemfileand runs the defaultrspectask via Bundler.
If no supported configuration is found the CLI explains what to add (e.g., a package.json test script).
kiket extensions replay¶
Replay a recorded payload against a local extension endpoint—handy for rapid iteration.
Options:
--payload FILE– Path to JSON payload (defaults to STDIN)--template NAME– Use a built-in template (before_transition,after_transition,issue_created)--url URL– Destination URL (defaulthttp://localhost:8080/webhook)--method METHOD– HTTP method (defaultPOST)--env-file FILE– Inject secrets from an env file into the payload--secret-prefix PREFIX– Include environment variables matching the prefix (defaultKIKET_SECRET_)--signing-secret VALUE– Compute theX-Kiket-Signatureheader via HMAC-SHA256
# Replay a template payload
kiket extensions replay --template before_transition --url http://localhost:8000/webhook
# Replay a saved payload and inject secrets from .env
kiket extensions replay --payload replay/batch.json --env-file .env.local --signing-secret dev-secret
kiket extensions validate [PATH]¶
Validate extension for publishing.
Checks:
- Manifest validation
- Git repository presence
- GitHub remote configuration
- Uncommitted changes warning
Example:
kiket extensions custom-data:*¶
Workspace admins can inspect or seed custom data modules directly over the authenticated API (using the same workspace token you configured via kiket auth login). Provide either a project id (--project) or project key (--project-key).
| Command | Description |
|---|---|
custom-data:list MODULE TABLE |
List records (--limit and --filters JSON optional). |
custom-data:get MODULE TABLE ID |
Fetch a single record. |
custom-data:create MODULE TABLE |
Create a record with --record '{"field":"value"}'. |
custom-data:update MODULE TABLE ID |
Update a record using --record. |
custom-data:delete MODULE TABLE ID |
Delete (soft delete) a record. |
Examples:
# List the 25 most recent records
kiket extensions custom-data:list com.example.crm.contacts automation_records \
--project 42 \
--limit 25 \
--filters '{"status":"open"}'
# Create a record against a project key
kiket extensions custom-data:create com.example.crm.contacts automation_records \
--project-key CRM \
--record '{"email":"lead@example.com","metadata":{"source":"cli"}}'
kiket extensions secrets:pull EXTENSION_ID¶
Download extension-scoped secrets into an env file (default .env.extension). Each secret value is fetched individually via /api/v1/extensions/:id/secrets/:key.
kiket extensions secrets:push EXTENSION_ID¶
Push secrets from an env file (default .env) to the platform, upserting each key in the secret store.
kiket extensions publish [PATH]¶
Publish extension to marketplace via GitHub repository.
Options:
--registry NAME- Registry name (default: marketplace)--ref REF- Git ref (branch/tag) to publish (defaults to current branch)--dry-run- Validate without publishing
Example:
Process:
- Validates extension (git repo, GitHub remote)
- Runs linter
- Executes tests
- Publishes GitHub repository reference to marketplace
Requirements:
- Extension must be in a git repository
- Must have a GitHub remote configured as
origin - All changes should be committed and pushed
kiket extensions doctor [PATH]¶
Diagnose extension issues and health.
Example:
Checks:
- Manifest file existence and syntax
- Extension ID presence
- SDK detection and version
- Test files
- Documentation
- Dependencies
Troubleshooting extensions CLI¶
ruff: command not foundduringkiket extensions lint– install your language-specific linters (e.g.,pip install ruffornpm installfor ESLint). The CLI intentionally piggybacks on the tools listed in your repo instead of bundling them.No supported test configuration found– add one of the supported manifests:package.jsonwith atestscript,pyproject.toml/requirements.txtfor pytest, or a RubyGemfilewith RSpec. The reference repo underextensions/reference/webhook-guardianshows the expected structure.- Replay calls fail with
connection refused– pass a reachable URL via--url(e.g., anngroktunnel orhttps://httpbin.org/post) and, if required, include--signing-secretso the receiving service can validate the webhook. - Secrets missing when running locally – sync them first:
kiket extensions secrets:pull your.extension --output .env.local, then runreplay/tests with--env-file .env.localso the CLI injectsKIKET_SECRET_*values automatically.
Workflows (kiket workflows)¶
Workflow validation, testing, and visualization tools.
kiket workflows lint [PATH]¶
Validate workflow YAML definitions.
Options:
--fix- Auto-fix formatting issues
Example:
Validations:
- YAML syntax
- Schema compliance
- Required fields (model_version, workflow.name, states)
- State transition validity
- Reference integrity
kiket workflows test [PATH]¶
Test workflow definitions against scenarios.
Options:
--scenario FILE- Path to test scenario YAML
Example:
kiket workflows simulate WORKFLOW¶
Simulate workflow execution with a test payload.
Options:
--input FILE- Path to input payload JSON (required)
Example:
Output:
- Execution path (states visited)
- Actions executed
- Final state
- Errors encountered
kiket workflows visualize WORKFLOW¶
Generate workflow diagram.
Options:
--output FILE- Output file path (default: workflow.svg)--format FORMAT- Output format (svg, png, pdf)
Example:
kiket workflows visualize workflows/kanban.yml --output diagram.svg
kiket workflows visualize workflows/kanban.yml --format png
kiket workflows diff¶
Compare workflows against another branch/tag.
Options:
--against BRANCH- Branch or tag to compare against (required)--path PATH- Path to workflow repository
Example:
Secrets (kiket secrets)¶
Secret management for extensions and products.
kiket secrets init¶
Initialize secret store for organization/product.
Options:
--org ORG- Organization slug--product ID- Product installation ID
Example:
kiket secrets set KEY [VALUE]¶
Set a secret value (prompts for value if not provided).
Options:
--org ORG- Organization slug--product ID- Product installation ID
Example:
kiket secrets set SLACK_TOKEN --org acme-corp
kiket secrets set API_KEY my-secret-value --org acme-corp
kiket secrets rotate KEY¶
Rotate a secret with a new value.
Options:
--org ORG- Organization slug--product ID- Product installation ID
Example:
kiket secrets list¶
List all secrets (keys only, no values).
Options:
--org ORG- Organization slug--product ID- Product installation ID
Example:
kiket secrets export¶
Export secrets to file.
Options:
--org ORG- Organization slug--product ID- Product installation ID--output FILE- Output file path (default: .env)
Example:
Warning: Never commit exported secret files to version control.
kiket secrets sync-from-env¶
Bulk import secrets from environment variables.
Options:
--prefix PREFIX- Environment variable prefix (default: KIKET_SECRET_)--org ORG- Organization slug--product ID- Product installation ID
Example:
export KIKET_SECRET_SLACK_TOKEN=xoxb-123
export KIKET_SECRET_API_KEY=abc123
kiket secrets sync-from-env --org acme-corp
Projects (kiket project)¶
Manage projects in your organization.
kiket project list¶
List all projects in the organization.
Options:
--status STATUS- Filter by status--visibility VISIBILITY- Filter by visibility (private, team, public)--search TERM- Search by name--page N- Page number (default: 1)--per-page N- Items per page (default: 25)
Example:
kiket project show PROJECT_ID¶
Show project details.
Example:
kiket project create¶
Create a new project.
Options:
--name NAME- Project name (required)--description DESC- Project description--key KEY- Project key (e.g., PROJ)--visibility VISIBILITY- Visibility (private, team, public)--github-repo URL- GitHub repository URL--start-date DATE- Start date (YYYY-MM-DD)--end-date DATE- End date (YYYY-MM-DD)
Example:
kiket project update PROJECT_ID¶
Update project settings.
Options:
--name NAME- New name--description DESC- New description--key KEY- New project key--status STATUS- New status--visibility VISIBILITY- New visibility--start-date DATE- New start date--end-date DATE- New end date
Example:
kiket project archive PROJECT_ID¶
Archive a project (sets status to 'archived').
Options:
--force,-f- Skip confirmation
Example:
kiket project delete PROJECT_ID¶
Permanently delete a project and all its data.
Options:
--force,-f- Skip confirmation
Example:
Workflow Repositories (kiket workflow-repo)¶
Manage workflow repository connections for configuration sync.
kiket workflow-repo list¶
List all workflow repositories in the organization.
Options:
--project PROJECT_ID- Filter by project--active BOOL- Filter by active status--sync-status STATUS- Filter by sync status--page N- Page number--per-page N- Items per page
Example:
kiket workflow-repo show REPO_ID¶
Show workflow repository details.
Example:
kiket workflow-repo attach PROJECT_ID¶
Attach a workflow repository to a project.
Options:
--url URL- GitHub repository URL (required)--branch BRANCH- Branch to sync from (default: main)--path PATH- Path to workflow files (default: .kiket/workflows)--frequency FREQ- Sync frequency (on_demand, hourly, daily)--token TOKEN- GitHub access token (for private repos)
Example:
kiket workflow-repo detach REPO_ID¶
Detach (delete) a workflow repository.
Options:
--force,-f- Skip confirmation
Example:
kiket workflow-repo sync REPO_ID¶
Trigger a sync for a specific workflow repository.
Example:
kiket workflow-repo update REPO_ID¶
Update workflow repository settings.
Options:
--branch BRANCH- New branch--path PATH- New workflow path--frequency FREQ- New sync frequency--active BOOL- Set active status--project PROJECT_ID- Move to different project
Example:
Sync (kiket sync)¶
Trigger configuration sync operations.
kiket sync project PROJECT_ID¶
Sync all workflow repositories attached to a project.
Options:
--wait,-w- Wait for sync to complete--timeout SECONDS- Timeout when waiting (default: 60)
Example:
kiket sync repo REPO_ID¶
Sync a specific workflow repository.
Options:
--wait,-w- Wait for sync to complete--timeout SECONDS- Timeout when waiting
Example:
kiket sync all¶
Sync all active workflow repositories in the organization.
Options:
--wait,-w- Wait for each sync to complete--timeout SECONDS- Timeout for each sync
Example:
Agents (kiket agents)¶
Inspect synced agent definitions (those stored in project.settings["agents"]).
kiket agents list PROJECT_ID¶
List agent manifests for a given project.
Options:
--org ORG– Organization slug/ID--capability TAG– Filter by capability (e.g.,triage,assign)--format human|json|csv– Output format
Example:
Analytics (kiket analytics)¶
Usage reporting and analytics access.
kiket analytics report usage¶
Generate usage report.
Options:
--org ORG- Organization slug--product ID- Product installation ID--start-date DATE- Start date (YYYY-MM-DD)--end-date DATE- End date (YYYY-MM-DD)--format FORMAT- Output format (human, json, csv)
Example:
kiket analytics report usage --org acme-corp
kiket analytics report usage --start-date 2025-01-01 --end-date 2025-01-31 --format csv
kiket analytics report billing¶
Generate billing report for a month.
Options:
--org ORG- Organization slug--month YYYY-MM- Month (defaults to current month)
Example:
kiket analytics report billing --org acme-corp
kiket analytics report billing --month 2025-01 --org acme-corp
kiket analytics queries PROJECT_ID¶
List query definition files that were synced into a project (straight from project.settings["queries"]).
Options:
--org ORG– Organization slug/ID (defaults to yourkiket config default-org)--tag TAG– Filter to queries that include a given tag--format human|json|csv– Output format (table by default)
Example:
SLA Monitoring (kiket sla)¶
kiket sla events¶
List workflow SLA alerts for an organization or filter down to a project/issue.
Options:
--org ORG- Organization slug or ID (required unless a default is configured)--project PROJECT_ID- Project identifier to scope the stream--issue ISSUE_ID- Issue identifier to focus on a single record--state imminent|breached|recovered- Filter by SLA state--limit N- Max events to return (default: 50, max: 200)--format human|json|csv- Output format (defaults to table view)
Example:
kiket sla events --org acme-corp --project 42 --state imminent
kiket sla events --org acme-corp --limit 200 --format json | jq '.data[] | select(.state=="breached")'
kiket analytics dashboard open¶
Open analytics dashboard in browser.
Options:
--org ORG- Organization slug--product ID- Product installation ID
Example:
Sandbox (kiket sandbox)¶
Manage ephemeral demo environments.
kiket sandbox launch PRODUCT¶
Create a sandbox environment.
Options:
--expires-in DURATION- Expiration time (e.g., 7d, 24h) (default: 7d)--demo-data- Include demo data (default: true)
Example:
Output:
- Sandbox ID
- Organization slug
- Access URL
- Admin credentials (save immediately)
kiket sandbox teardown SANDBOX_ID¶
Delete a sandbox environment.
Options:
--force- Skip confirmation
Example:
kiket sandbox refresh-data SANDBOX_ID¶
Refresh demo data in sandbox.
Example:
kiket sandbox list¶
List all sandbox environments.
Example:
kiket sandbox extend SANDBOX_ID¶
Extend sandbox expiration.
Options:
--duration DURATION- Additional time (e.g., 7d, 24h) (required)
Example:
Doctor (kiket doctor)¶
Run comprehensive health checks.
kiket doctor run¶
Execute health diagnostics.
Options:
--org ORG- Organization slug--product ID- Product installation ID--extensions- Check extension health--workflows- Check workflow health
Example:
Checks:
- API connectivity
- Authentication status
- Organization access
- Product installation health
- Extension status and reachability
- Workflow validation
- Secret health and expiration
- Extension + repository diagnostics (failing invocations, missing secrets, definition errors) with remediation hints
Global Options¶
Available on all commands:
--verbose,-v- Enable verbose output--format FORMAT- Output format (human, json, csv)--org ORG- Organization slug or ID
Configuration File¶
Location: ~/.kiket/config
Format:
api_base_url: https://kiket.dev
api_token: your-token-here
default_org: your-org-slug
output_format: human
verbose: false
Environment Variables¶
Override configuration with environment variables:
KIKET_API_URL- API base URLKIKET_API_TOKEN- API tokenKIKET_DEFAULT_ORG- Default organization
Example:
export KIKET_API_URL=https://staging.kiket.dev
export KIKET_API_TOKEN=staging-token
kiket marketplace list
Output Formats¶
Human (Default)¶
Pretty-printed tables and colored output for terminal use.
JSON¶
Machine-readable JSON for scripting.
CSV¶
Comma-separated values for spreadsheets.
Scripting Examples¶
Bulk Secret Import¶
#!/bin/bash
# Import secrets from .env file
while IFS='=' read -r key value; do
[[ $key =~ ^#.*$ ]] && continue # Skip comments
[[ -z $key ]] && continue # Skip empty lines
kiket secrets set "$key" "$value" --org acme-corp
done < secrets.env
Check Installation Health¶
#!/bin/bash
# Monitor installation health
STATUS=$(kiket marketplace status inst-123 --format json | jq -r '.status')
if [ "$STATUS" != "active" ]; then
echo "Installation is not healthy: $STATUS"
exit 1
fi
Automate Extension Publishing¶
#!/bin/bash
# CI/CD pipeline for extension
cd my-extension
# Run checks
kiket extensions validate || exit 1
kiket extensions lint || exit 1
kiket extensions test || exit 1
# Publish if on main branch with version tag
if [[ "$BRANCH" = "main" && "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
kiket extensions publish --ref "$TAG"
fi
Troubleshooting¶
Authentication Issues¶
API Connection Issues¶
Verbose Mode¶
Enable detailed logging for debugging:
Or set globally:
Extension Development Workflow¶
Complete workflow for developing and publishing an extension:
# 1. Scaffold new extension
kiket extensions scaffold my-notifier --sdk python
# 2. Develop extension
cd my-notifier
# Edit src/handler.py and .kiket/manifest.yaml
# 3. Initialize git repository
git init
git add .
git commit -m "Initial commit"
# 4. Create GitHub repository and add remote
gh repo create my-notifier --public
git remote add origin https://github.com/username/my-notifier.git
git push -u origin main
# 5. Test locally
kiket extensions test
# 6. Lint and fix issues
kiket extensions lint --fix
# 7. Run diagnostics
kiket extensions doctor
# 8. Validate for publishing
kiket extensions validate
# 9. Publish to marketplace
kiket extensions publish
Marketplace Product Workflow¶
Install and manage marketplace products:
# 1. Browse available products
kiket marketplace list
# 2. View product details
kiket marketplace info marketing-ops
# 3. Preview installation (dry run)
kiket marketplace install marketing-ops --dry-run --org acme-corp
# 4. Install product
kiket marketplace install marketing-ops --org acme-corp
# 5. Check installation status
kiket marketplace status
# 6. Upgrade when new version available
kiket marketplace upgrade inst-123 --version 2.0.0
# 7. Monitor health
kiket doctor run --org acme-corp --extensions
Support¶
- Documentation: https://docs.kiket.dev
- Issues: https://github.com/kiket/cli/issues
- Community: https://community.kiket.dev
Version¶
Current version: 0.1.0