Skip to content

context

Manage CLI contexts. Contexts bundle server URL, organization, and project settings for easy switching between environments (local, staging, production).

Overview

A context contains:

  • Server URL: Where the Sibyl API is running
  • Organization: Which org to use (optional)
  • Default Project: Fallback project for operations
  • Insecure: Whether to skip SSL verification

Commands

  • sibyl context - Show current context
  • sibyl context list - List all contexts
  • sibyl context show - Show context details
  • sibyl context create - Create a context
  • sibyl context use - Set active context
  • sibyl context update - Update a context
  • sibyl context delete - Delete a context
  • sibyl context clear - Clear active context

context (no subcommand)

Show the current active context.

Synopsis

bash
sibyl context [options]

Options

OptionShortDescription
--json-jJSON output

Example

bash
sibyl context

Output:

  Context: local
  (active)

  Server:   http://localhost:3334
  Org:      auto
  Project:  proj_abc123 (linked)

If a directory is linked, it shows (linked) next to the project.


context list

List all configured contexts.

Synopsis

bash
sibyl context list [options]

Options

OptionShortDescription
--json-jJSON output

Example

bash
sibyl context list

Output:

Contexts
        Name     Server                         Org        Project
───────────────────────────────────────────────────────────────────
*       local    http://localhost:3334          auto       none
        staging  https://staging.sibyl.io       myorg      proj_staging
        prod     https://sibyl.example.com      myorg      proj_main

* = active context

context show

Show details of a specific context.

Synopsis

bash
sibyl context show [name] [options]

Arguments

ArgumentRequiredDescription
nameNoContext name (defaults to active)

Options

OptionShortDescription
--json-jJSON output

Example

bash
sibyl context show prod

Output:

  Context: prod

  Server:   https://sibyl.example.com
  Org:      myorg
  Project:  proj_main

context create

Create a new context.

Synopsis

bash
sibyl context create <name> [options]

Arguments

ArgumentRequiredDescription
nameYesContext name (e.g., 'prod', 'local')

Options

OptionShortDefaultDescription
--server-shttp://localhost:3334Server URL
--org-o(auto)Organization slug
--project-p(none)Default project ID
--use-ufalseSet as active context
--insecure-kfalseSkip SSL verification
--json-jfalseJSON output

Examples

bash
# Create local development context
sibyl context create local --server http://localhost:3334

# Create production context and activate it
sibyl context create prod \
  --server https://sibyl.example.com \
  --org myorg \
  --project proj_main \
  --use

# Create staging with self-signed cert
sibyl context create staging \
  --server https://staging.internal:3334 \
  --insecure

Output:

Created context 'prod'
Set as active context
  Server:  https://sibyl.example.com
  Org:     myorg
  Project: proj_main

context use

Set the active context. This affects all subsequent commands.

Synopsis

bash
sibyl context use <name> [options]

Arguments

ArgumentRequiredDescription
nameYesContext name to activate

Options

OptionShortDescription
--json-jJSON output

Example

bash
sibyl context use prod

Output:

Switched to context 'prod'
  Server: https://sibyl.example.com

context update

Update an existing context.

Synopsis

bash
sibyl context update <name> [options]

Arguments

ArgumentRequiredDescription
nameYesContext name to update

Options

OptionShortDescription
--server-sNew server URL
--org-oNew org slug (use 'auto' to clear)
--project-pNew default project (use 'none' to clear)
--insecure-kSkip SSL verification
--secureRe-enable SSL verification
--json-jJSON output

Examples

bash
# Update server URL
sibyl context update prod --server https://new-sibyl.example.com

# Change default project
sibyl context update staging --project proj_new_staging

# Clear organization (use auto-detect)
sibyl context update local --org auto

# Clear default project
sibyl context update dev --project none

# Enable insecure mode
sibyl context update staging --insecure

# Disable insecure mode
sibyl context update staging --secure

context delete

Delete a context.

Synopsis

bash
sibyl context delete <name>

Arguments

ArgumentRequiredDescription
nameYesContext name to delete

Example

bash
sibyl context delete old-staging

Output:

Deleted context 'old-staging'

If you delete the active context:

Deleted context 'local'
No active context. Use 'sibyl context use <name>' to set one.

context clear

Clear the active context. Falls back to legacy server.url from config.

Synopsis

bash
sibyl context clear

Example

bash
sibyl context clear

Output:

Cleared active context
Using legacy server.url from config

Context Priority

When resolving project context, the CLI checks in this order:

  1. --context / -C global flag (highest priority)
  2. SIBYL_CONTEXT environment variable
  3. Active context's default project
  4. Path-based project link (from current directory)

Override with Flag

bash
# Use different project for one command
sibyl --context proj_other task list
sibyl -C proj_other task list

Override with Environment

bash
# Use different project for shell session
export SIBYL_CONTEXT=proj_other
sibyl task list  # Uses proj_other

Common Workflows

Development Setup

bash
# Create contexts for different environments
sibyl context create local --server http://localhost:3334 --use
sibyl context create staging --server https://staging.sibyl.io --org myorg
sibyl context create prod --server https://sibyl.example.com --org myorg

# Switch between environments
sibyl context use local
sibyl context use staging
sibyl context use prod

CI/CD Integration

bash
# In CI pipeline
sibyl context create ci \
  --server "$SIBYL_URL" \
  --org "$SIBYL_ORG" \
  --use

# Or use environment variable
export SIBYL_CONTEXT=proj_ci
sibyl task list --status todo

Multiple Organizations

bash
# Create context per org
sibyl context create work --server https://sibyl.company.com --org company
sibyl context create personal --server https://sibyl.io --org personal

# Switch organizations
sibyl context use work
sibyl context use personal

Configuration File

Contexts are stored in ~/.sibyl/config.toml:

toml
[context]
active = "local"

[contexts.local]
server_url = "http://localhost:3334"
org_slug = ""
default_project = ""
insecure = false

[contexts.prod]
server_url = "https://sibyl.example.com"
org_slug = "myorg"
default_project = "proj_main"
insecure = false

[contexts.staging]
server_url = "https://staging.internal:3334"
org_slug = "myorg"
default_project = ""
insecure = true

Released under the MIT License.