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.1021.1

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.1021.1
File Size Uploaded Provenance
vibecontrols_sdk-2026.1021.1.tar.gz 19.5 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 28.4 kB

Release files / vibecontrols_sdk-2026.1021.1.tar.gz

Download URL vibecontrols_sdk-2026.1021.1.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
da3f0c98b1dee11695251a4bbca0be87158b5dea7c16fcd3791218144cecfcf6
BLAKE2b-256 checksum
How to use checksums
7986528e5af49e58135330b7f66464fb7d728dc57f67d3e571c15cbff9cef2fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL vibecontrols_sdk-2026.1021.1-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
19d95884d71ad3be1c03a0c3f1e0a8929361e466aba7a8459a8c05dc5886dc2b
BLAKE2b-256 checksum
How to use checksums
6f0eb86d0b0fcfeec1392ee84b78d82551d65ebb3aca1857dff5c855232d28d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for vibecontrols-sdk 2026.1021.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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