Skip to main content

vibecontrols-sdk

Official Python SDK for VibeControls -- development environment management for the Burdenoff platform.

Features

  • Async/await support built on httpx
  • Dual-endpoint GraphQL client (workspace + global gateways)
  • 14 domain modules covering the full VibeControls API
  • Multiple auth flows: email/password, device code, PKCE, client credentials
  • Automatic token refresh with configurable callback
  • Retry with exponential backoff
  • Typed error hierarchy
  • Full type hints with py.typed marker

Installation

pip install vibecontrols-sdk

# Development install
pip install -e ".[dev]"

Quick Start

import asyncio
from vibecontrols_sdk import VibeControlsSDK, VibeControlsConfig

async def main():
    sdk = VibeControlsSDK(VibeControlsConfig(
        workspace_endpoint="https://graphqlworkspaces.burdenoff.com/workspaces/graphql",
        global_endpoint="https://graphql.burdenoff.com/global/graphql",
    ))

    # Sign in with email/password
    auth = await sdk.auth.sign_in("user@example.com", "password")
    print(f"Signed in as {auth['user']['fullName']}")

    # List vibes
    vibes = await sdk.vibes.list()

    # List sessions
    sessions = await sdk.sessions.list()

    await sdk.close()

asyncio.run(main())

Configuration

from vibecontrols_sdk import VibeControlsConfig

config = VibeControlsConfig(
    workspace_endpoint="https://graphqlworkspaces.burdenoff.com/workspaces/graphql",
    global_endpoint="https://graphql.burdenoff.com/global/graphql",

    # OAuth2 (optional, for device code / PKCE / client credentials flows)
    oidc_issuer="https://auth.burdenoff.com",
    client_id="vibecontrols-cli",
    client_secret=None,           # Only for client credentials flow
    redirect_uri=None,            # Only for PKCE flow

    # Pre-existing tokens (optional)
    api_key=None,
    access_token=None,
    refresh_token=None,
    workspace_token=None,

    timeout=30.0,                 # Request timeout in seconds
    auto_refresh=True,            # Auto-refresh tokens before expiry
    on_token_refresh=None,        # Callback for external token persistence
)

Modules

All methods are async. Access each module as a property on the VibeControlsSDK instance.

Module Property Description
Auth sdk.auth Sign in/up, sign out, token refresh, device code, PKCE, client credentials
Agents sdk.agents Agent CRUD, heartbeat, probes, plugin management
Vibes sdk.vibes Vibe (project/workspace) CRUD and management
Sessions sdk.sessions Terminal session management
Notes sdk.notes Note CRUD operations
Configuration sdk.configuration Key-value configuration management
Webhooks sdk.webhooks Webhook CRUD and management
Docs sdk.docs Documentation site management
VibeDeck sdk.vibedeck VibeDeck management (decks and buttons)
Targets sdk.targets Target machine management
Audit sdk.audit Audit log queries
UI Session sdk.ui_session UI session state management
Tunnels sdk.tunnels Agent tunnel management
AI Tool Events sdk.ai_tool_events AI tool event tracking

Authentication Flows

Email / Password

auth = await sdk.auth.sign_in("user@example.com", "password")

Device Code (CLI / headless)

device = await sdk.auth.start_device_code_flow()
print(f"Visit {device['verification_uri_complete']} and enter code {device['user_code']}")
# SDK polls automatically until the user authorizes

PKCE (browser-based)

challenge = sdk.auth.build_authorization_url()
# Redirect user to challenge["url"]
# After callback:
result = await sdk.auth.exchange_auth_code(code, challenge["codeVerifier"])

Client Credentials (machine-to-machine)

config = VibeControlsConfig(
    ...,
    client_id="my-service",
    client_secret="secret",
)
sdk = VibeControlsSDK(config)
# Tokens are obtained automatically on first request

Error Handling

from vibecontrols_sdk.errors import (
    VibeControlsError,
    AuthenticationError,
    AuthorizationError,
    NetworkError,
    ValidationError,
    RateLimitError,
    DeviceCodeExpiredError,
    DeviceCodeDeniedError,
)

try:
    await sdk.auth.sign_in("user@example.com", "wrong")
except AuthenticationError:
    print("Invalid credentials")
except NetworkError:
    print("Could not reach the API")
except VibeControlsError as e:
    print(f"SDK error: {e}")

Examples

See the examples/ directory:

  • basic_usage.py -- Sign in, list vibes and sessions
  • advanced_usage.py -- Device code flow, PKCE flow, token management

Development

# Create virtual environment
python -m venv venv && source venv/bin/activate

# Install with dev dependencies
pip install -e ".[dev]"

# Format
black src/ tests/ examples/
isort src/ tests/ examples/

# Lint
flake8 src/ tests/ examples/
mypy src/

# Test
pytest
pytest --cov=vibecontrols_sdk --cov-report=html

Project Structure

vibecontrols-sdk-python/
  src/vibecontrols_sdk/
    __init__.py          # VibeControlsSDK facade
    client/              # Dual-endpoint GraphQL client
    auth/                # Auth module + PKCE utilities
    agent/               # Agent management
    vibe/                # Vibe management
    session/             # Session management
    note/                # Note management
    configuration/       # Key-value config
    webhook/             # Webhooks
    docs/                # Documentation sites
    vibedeck/            # VibeDeck (decks + buttons)
    target/              # Target machines
    audit/               # Audit logs
    ui_session/          # UI session state
    tunnel/              # Tunnels
    ai_tool_event/       # AI tool events
    types/               # Type definitions
    errors.py            # Error hierarchy
  tests/
  examples/
  docs/
  pyproject.toml

License

Proprietary -- Copyright Burdenoff Consultancy Services Pvt. Ltd.

Support

Metadata

Release files for vibecontrols-sdk 2026.527.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vibecontrols-sdk 2026.527.2
File Size Uploaded
vibecontrols_sdk-2026.527.2.tar.gz 12.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vibecontrols-sdk 2026.527.2
File Interpreter ABI Platform
vibecontrols_sdk-2026.527.2-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / vibecontrols_sdk-2026.527.2.tar.gz

Download URL vibecontrols_sdk-2026.527.2.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
877bf5d84c188420d30c6fdab9fba107036cf6ab8afa0de869988480afdd09ca
BLAKE2b-256 checksum
How to use checksums
875b938b1a1028987e36bec0a092b9210fefb48bb4e54012f2e51619e285c833
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release files / vibecontrols_sdk-2026.527.2-py3-none-any.whl

Download URL vibecontrols_sdk-2026.527.2-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61634f94d3ea5c25d171a60d0f95dd20f24a001f1a7fbcc1196bff15438eef46
BLAKE2b-256 checksum
How to use checksums
dd848a8e55c388d6b0d3a6b1ca97de4190678f606812da25749852bb2bc9d899
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page