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

Built distribution (wheel)

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

Total release size: 28.5 kB

Release files / vibecontrols_sdk-2026.1021.2.tar.gz

Download URL vibecontrols_sdk-2026.1021.2.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
59577db8e2f5bc98f0e8a1eea84a8aeaabd98b2294a1fea832ae9fcfbee28372
BLAKE2b-256 checksum
How to use checksums
d77a2e5bbfdabb6e457875bc2b1d26d468acd3ffcdbea3d99b37dd71fe305820
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.2-py3-none-any.whl

Download URL vibecontrols_sdk-2026.1021.2-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e344c55568b544d09037c918ed7e97172664d7b20c58e8107d28a7e54c44d32
BLAKE2b-256 checksum
How to use checksums
bc58736ea2787454e428a19d8ec492e99bda12456fd5cea270196fe25066e772
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.2

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