Skip to content

Kiket CLI Reference

The kiket CLI provides unified tooling for managing marketplace products, developing extensions, validating workflows, and automating platform operations.

Installation

Via RubyGems

gem install kiket-cli

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 (custom by default)
kiket extensions init --extension-id com.example.crm-bot --template webhook_guard

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 login --token my-api-token

kiket auth logout

Remove stored credentials.

kiket auth logout

kiket auth status

Show current authentication status and user info.

kiket auth status

kiket auth token

Display the current API token (requires confirmation).

kiket auth token

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 URL
  • default_org / org - Default organization slug
  • output_format / format - Output format (human, json, csv)
  • verbose - Enable verbose output (true/false)

Example:

kiket configure set default_org acme-corp
kiket configure set output_format json

kiket configure get KEY

Get a configuration value.

kiket configure get default_org

kiket configure list

List all configuration values.

kiket configure list

kiket configure reset

Reset configuration to defaults (requires confirmation).

kiket configure reset

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 list
kiket marketplace list --format json

kiket marketplace info PRODUCT

Show detailed information about a product.

Example:

kiket marketplace info marketing-ops

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 dbt 12345
kiket marketplace dbt 12345 --status failure --limit 5

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 under definitions/ to copy (default sample).
  • --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 under definitions/ to copy (default: sample marketing_ops).
  • --force – Overwrite the destination folder if it already exists.

Example:

kiket marketplace sync-samples --destination ~/code/samples --blueprints sample marketing_ops

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 upgrade inst-123 --version 2.0.0

kiket marketplace uninstall INSTALLATION

Uninstall a product.

Options:

  • --force - Skip confirmation prompt
  • --preserve-data - Keep data after uninstall

Example:

kiket marketplace uninstall inst-123
kiket marketplace uninstall inst-123 --preserve-data

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 generated extension.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:

kiket extensions lint
kiket extensions lint --fix

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:

kiket extensions test
kiket extensions test --watch

Detection rules:

  • Python projects: looks for poetry.lock, pyproject.toml, Pipfile, or requirements.txt and runs poetry run pytest, pipenv run pytest, or python -m pytest accordingly. Watch mode falls back to ptw when it is installed.
  • Node projects: inspects package.json + lockfiles and invokes npm test, yarn test, or pnpm test with --watch pass-through.
  • Ruby projects: detects a Gemfile and runs the default rspec task 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 (default http://localhost:8080/webhook)
  • --method METHOD – HTTP method (default POST)
  • --env-file FILE – Inject secrets from an env file into the payload
  • --secret-prefix PREFIX – Include environment variables matching the prefix (default KIKET_SECRET_)
  • --signing-secret VALUE – Compute the X-Kiket-Signature header 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 validate

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:pull com.example.slack --output .env.slack

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 secrets:push com.example.slack --env-file .env.slack

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:

kiket extensions publish
kiket extensions publish --ref v1.0.0
kiket extensions publish --dry-run

Process:

  1. Validates extension (git repo, GitHub remote)
  2. Runs linter
  3. Executes tests
  4. 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:

kiket extensions doctor

Checks:

  • Manifest file existence and syntax
  • Extension ID presence
  • SDK detection and version
  • Test files
  • Documentation
  • Dependencies

Troubleshooting extensions CLI

  • ruff: command not found during kiket extensions lint – install your language-specific linters (e.g., pip install ruff or npm install for 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.json with a test script, pyproject.toml/requirements.txt for pytest, or a Ruby Gemfile with RSpec. The reference repo under extensions/reference/webhook-guardian shows the expected structure.
  • Replay calls fail with connection refused – pass a reachable URL via --url (e.g., an ngrok tunnel or https://httpbin.org/post) and, if required, include --signing-secret so 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 run replay/tests with --env-file .env.local so the CLI injects KIKET_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:

kiket workflows lint
kiket workflows lint workflows/ --fix

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 test
kiket workflows test --scenario test-scenarios.yml

kiket workflows simulate WORKFLOW

Simulate workflow execution with a test payload.

Options:

  • --input FILE - Path to input payload JSON (required)

Example:

kiket workflows simulate workflows/kanban.yml --input test-payload.json

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:

kiket workflows diff --against main
kiket workflows diff --against v1.0.0 --path ./workflows

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 init --org acme-corp
kiket secrets init --org acme-corp --product inst-123

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 rotate SLACK_TOKEN --org acme-corp

kiket secrets list

List all secrets (keys only, no values).

Options:

  • --org ORG - Organization slug
  • --product ID - Product installation ID

Example:

kiket secrets list --org acme-corp

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:

kiket secrets export --org acme-corp --output secrets.env

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 list
kiket project list --visibility public --format json

kiket project show PROJECT_ID

Show project details.

Example:

kiket project show 123
kiket project show PROJ

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 create --name "My Project" --key MYPROJ --github-repo https://github.com/org/repo

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 update 123 --name "Updated Name" --visibility team

kiket project archive PROJECT_ID

Archive a project (sets status to 'archived').

Options:

  • --force, -f - Skip confirmation

Example:

kiket project archive 123
kiket project archive 123 --force

kiket project delete PROJECT_ID

Permanently delete a project and all its data.

Options:

  • --force, -f - Skip confirmation

Example:

kiket project delete 123 --force

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 list
kiket workflow-repo list --project 123 --active true

kiket workflow-repo show REPO_ID

Show workflow repository details.

Example:

kiket workflow-repo show 42

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 attach 123 --url https://github.com/org/repo --branch develop

kiket workflow-repo detach REPO_ID

Detach (delete) a workflow repository.

Options:

  • --force, -f - Skip confirmation

Example:

kiket workflow-repo detach 42 --force

kiket workflow-repo sync REPO_ID

Trigger a sync for a specific workflow repository.

Example:

kiket workflow-repo sync 42

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:

kiket workflow-repo update 42 --branch main --frequency hourly

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 project 123
kiket sync project 123 --wait --timeout 120

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 repo 42 --wait

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:

kiket sync all
kiket sync all --wait

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:

kiket agents list 123
kiket agents list 123 --capability triage --format json

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 your kiket config default-org)
  • --tag TAG – Filter to queries that include a given tag
  • --format human|json|csv – Output format (table by default)

Example:

kiket analytics queries 101
kiket analytics queries 101 --tag delivery --format json

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:

kiket analytics dashboard open --org acme-corp

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:

kiket sandbox launch marketing-ops
kiket sandbox launch marketing-ops --expires-in 48h

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 teardown sandbox-abc123

kiket sandbox refresh-data SANDBOX_ID

Refresh demo data in sandbox.

Example:

kiket sandbox refresh-data sandbox-abc123

kiket sandbox list

List all sandbox environments.

Example:

kiket sandbox list

kiket sandbox extend SANDBOX_ID

Extend sandbox expiration.

Options:

  • --duration DURATION - Additional time (e.g., 7d, 24h) (required)

Example:

kiket sandbox extend sandbox-abc123 --duration 7d

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:

kiket doctor run --org acme-corp
kiket doctor run --org acme-corp --extensions --workflows

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 URL
  • KIKET_API_TOKEN - API token
  • KIKET_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.

kiket marketplace list

JSON

Machine-readable JSON for scripting.

kiket marketplace list --format json | jq '.products[] | .name'

CSV

Comma-separated values for spreadsheets.

kiket marketplace list --format csv > products.csv

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

# Verify token is set
kiket auth status

# Re-authenticate
kiket auth logout
kiket auth login

API Connection Issues

# Check API URL
kiket configure get api_url

# Test connectivity
kiket doctor run

Verbose Mode

Enable detailed logging for debugging:

kiket --verbose marketplace list

Or set globally:

kiket configure set verbose true

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

Version

kiket version

Current version: 0.1.0