eve-cli-primitives

v2026.09.25

Core Eve CLI primitives and capabilities for app developers. Use as the quick reference for commands and flows.

GitHub
Install command
npx skhub add incept5/eve-cli-primitives
Markdown
SKILL.md

Eve CLI Primitives

Use this skill as the command map for Eve. Keep examples short and concrete.

Profiles (API Target + Defaults)

# Create and use a profile
eve profile create staging --api-url https://api.eve.example.com
eve profile use staging

# Set defaults to avoid repeating flags
eve profile set --default-email you@example.com --default-ssh-key ~/.ssh/id_ed25519
eve profile set --org org_xxx --project proj_xxx

# Inspect current profile
eve profile show

Authentication

eve auth login
eve auth status
eve auth logout
eve auth permissions

# Sync local OAuth tokens for agent harnesses (optional)
eve auth sync

# Nostr challenge (API-level, no CLI command yet)
# POST /auth/challenge {"provider": "nostr", "pubkey": "<hex>"}

Orgs and Projects

eve org list
eve org ensure my-org --slug myorg

eve project list
eve project ensure --name "My App" --slug my-app --repo-url git@github.com:me/my-app.git --branch main

# Membership management
eve org members --org org_xxx
eve org members add user@example.com --role admin --org org_xxx
eve org members remove user_abc --org org_xxx

eve project members --project proj_xxx
eve project members add user@example.com --role admin --project proj_xxx
eve project members remove user_abc --project proj_xxx

URL impact: The org --slug and project --slug directly form your deployment URLs and K8s namespaces:

  • URL: {service}.{orgSlug}-{projectSlug}-{env}.{domain} (e.g., api.myorg-my-app-staging.eve.example.com)
  • Namespace: eve-{orgSlug}-{projectSlug}-{env} (e.g., eve-myorg-my-app-staging)

Choose slugs carefully — they are immutable after creation.

Environments and Deploys

# Create a persistent environment
eve env create staging --project proj_xxx --type persistent

# Inspect environments
eve env list --project proj_xxx
eve env show staging --project proj_xxx

# Deploy an environment (requires --ref with 40-char SHA or a ref resolved against --repo-dir)
eve env deploy staging --ref main --repo-dir .

# When environment has a pipeline configured, the above triggers the pipeline.
# Use --direct to bypass pipeline and deploy directly:
eve env deploy staging --ref main --repo-dir . --direct

# Pass inputs to pipeline:
eve env deploy staging --ref main --repo-dir . --inputs '{"key":"value"}'

# Diagnostics
eve env diagnose proj_xxx staging
eve env diagnose proj_xxx staging --request <req_id>     # request-level integrated diagnose
eve env logs proj_xxx staging <service>
eve env logs proj_xxx staging <service> --follow         # stream logs
eve env logs proj_xxx staging <service> --filter route=/api/x --filter status=500
eve env delete proj_xxx staging

--filter k=v is repeatable; common keys: route, status, level, request_id. Use --grep for free-text matching, --since/--tail to bound the window.

Jobs (Create + Observe)

eve job create --description "Review auth flow"
eve job list --phase active
eve job show <job-id>
eve job follow <job-id>
eve job diagnose <job-id>
eve job result <job-id>

# Per-job harness + env overrides (Eden-style per-request brain selection)
eve job create --description "..." \
  --harness-override-file ./profile.json \
  --env-override OPENAI_API_KEY='${secret.OPENAI_KEY}' \
  --env-override MODEL_ENDPOINT=https://qwen.local

--harness-override-file takes a JSON object {harness, model?, reasoning_effort?, variant?, temperature?}. --env-override KEY=VALUE is repeatable, validates UPPER_SNAKE_CASE keys, and supports ${secret.KEY} interpolation resolved at spawn time.

Coordination (Supervise + Threads)

eve supervise <job-id> --timeout 60
eve thread messages <thread-id> --since 10m
eve thread post <thread-id> --body '{"kind":"directive","body":"focus on auth"}'
eve thread follow <thread-id>

Agents + Chat

# Sync agent/team/chat configuration from repo
eve agents sync --project proj_xxx --ref main --repo-dir .
# Inspect resolved agent config (from latest sync)
eve agents config --project proj_xxx --json
# Simulate chat routing without Slack
eve chat simulate --project proj_xxx --team-id T123 --channel-id C456 --user-id U789 --text "hello"

# Set org default agent slug (fallback when no slug matches)
eve org update org_xxx --default-agent mission-control

Packs (AgentPacks)

eve packs status
eve packs resolve --dry-run
eve migrate skills-to-packs

Slack gateway commands (run inside Slack):

@eve <agent-slug> <command>
@eve agents list
@eve agents listen <agent-slug>
@eve agents unlisten <agent-slug>
@eve agents listening

Nostr commands (via DM to platform pubkey):

/agent-slug command text
agent-slug: command text

Secrets

eve secrets list --project proj_xxx
eve secrets set API_KEY "value" --project proj_xxx
eve secrets delete API_KEY --project proj_xxx
eve secrets show API_KEY --project proj_xxx
eve secrets ensure --project proj_xxx --keys API_KEY
eve secrets export --project proj_xxx --keys API_KEY

System Admin (if authorized)

eve system status
eve system jobs
eve system envs
eve system env-health --json
eve system env-cost --all
eve system logs api --tail 50
eve system pods
eve system events

eve system env-cost returns month-to-date environment allocation snapshots from the admin API. It is a snapshot view, not a live OpenCost query; stale or unavailable estimates are labelled in the output.

Workflows

eve workflow list
eve workflow run qa-review --input '{"task":"audit"}'
eve workflow invoke qa-review --input '{"task":"audit"}'
eve workflow run qa-review --input '{...}' --env-override MODEL=opus-4.5
eve workflow logs job_abc123

--env-override KEY=VALUE is repeatable on run and invoke; values flow through to each step's job as env_overrides.

Integrations (Slack, Nostr, GitHub)

eve integrations list --org org_xxx
eve integrations slack connect --org org_xxx --team-id T123 --token xoxb-test
eve integrations test <integration_id> --org org_xxx

# Nostr integration (via API)
# POST /integrations {"provider": "nostr", "account_id": "<platform-pubkey>", ...}

Pipelines and Workflows

eve pipeline list
eve pipeline show <project> <name>
eve pipeline run <name> --ref <sha> --env <env> --repo-dir ./my-app

eve workflow list
eve workflow show <project> <name>
eve workflow run <project> <name> --input '{"k":"v"}' [--env-override KEY=VALUE]
eve workflow invoke <project> <name> --input '{"k":"v"}' [--env-override KEY=VALUE] [--no-wait]
eve workflow logs <job-id>

Builds

Builds are first-class primitives that track image construction from input (spec) to execution (run) to output (artifacts).

# List builds for a project
eve build list [--project <id>]

# Create a build spec
eve build create --project <id> --ref <sha> --manifest-hash <hash>

# Show build spec details
eve build show <build_id>

# Start a build run
eve build run <build_id>

# List runs for a build
eve build runs <build_id>

# View build logs
eve build logs <build_id> [--run <run_id>]

# List produced image artifacts (digests)
eve build artifacts <build_id>

# Full diagnostic dump (spec + runs + artifacts + logs)
eve build diagnose <build_id>

# Cancel an active build
eve build cancel <build_id>

Builds happen automatically during pipeline build steps. Use eve build diagnose to debug build failures.

Traces (OTEL)

Agent-queryable trace store. Pair with eve env diagnose --request <id> and eve env logs --filter request_id=<id> for end-to-end request triage.

eve traces query --request-id <id>                    # spans for a single request
eve traces query --trace-id <id>                      # spans for a known trace
eve traces query --service api --since 15m --error    # recent errors in a service
eve traces query --route /api/projects --p99          # p99 latency for a route
eve traces query --request-id <id> --json             # machine-readable

One of --request-id, --trace-id, --since, --route, or --error is required. --no-cache bypasses the trace cache.

Custom Domains

eve domain list [--env <name>] [--project <id>]
eve domain verify <hostname>             # check DNS and show activation status
eve domain status <hostname>             # show domain status and owning env
eve domain transfer <hostname> --to <env>  # move ownership between envs
eve domain unbind <hostname>             # clear binding so next deploy claims it
eve domain remove <hostname>             # delete the domain entirely

System Health

eve system health

Harnesses (Optional)

eve harness list
eve harness list --capabilities
eve harness get mclaude
eve agents config --json

Notes

  • Use --project if no default project is set in the profile.
  • Integrations are org-scoped; use --org for integrations commands.
  • Prefer eve job ... (singular) for job commands.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.25

Published

Sep 25, 2026

Category

Uncategorized

License

MIT

Source path

eve-se/eve-cli-primitives

Default branch

main

Latest commit

d8b938d

Tree SHA

b4bd88b