Skip to main content

SDK + CLI prototype for disposable identity workflows in AI agent testing

Project description

burnd

burnd is a Python toolkit for creating disposable identities for AI agent workflows.

It provides:

  • A typed Python SDK
  • A CLI for identity lifecycle operations
  • Framework helpers for LangChain, CrewAI, and AutoGen

Installation

From PyPI

pip install burnd

From source

git clone <your-repo-url>
cd Burner
python -m venv venv
# Windows PowerShell
.\venv\Scripts\Activate.ps1
# macOS/Linux
# source venv/bin/activate
pip install -e .

Optional framework extras

pip install "burnd[langchain]"
pip install "burnd[crewai]"
pip install "burnd[autogen]"
pip install "burnd[all-frameworks]"

Distribution name is burnd; import package path is burner.

SDK Usage

Sync example

from burner.models import IdentityRequest
from burner.sdk import create_identity, poll_inbox, rotate_identity, dispose_identity

bundle = create_identity(
    IdentityRequest(
        task="signup verification flow",
        provider="stub",
        include_email=True,
        include_browser_profile=True,
    ),
    include_secrets=True,
)

identity_id = str(bundle.public.identity_id)
print(bundle.public.persona.full_name)
print(bundle.public.email.address if bundle.public.email else None)

messages = poll_inbox(identity_id, limit=5)
print([m.subject for m in messages])

rotated = rotate_identity(identity_id, reason="refresh")
dispose_identity(str(rotated.public.identity_id))

Async example

import asyncio
from burner.models import IdentityRequest
from burner.sdk import acreate_identity, apoll_inbox, adispose_identity

async def main() -> None:
    bundle = await acreate_identity(
        IdentityRequest(task="async smoke", provider="stub"),
        include_secrets=True,
    )
    identity_id = str(bundle.public.identity_id)
    _ = await apoll_inbox(identity_id, limit=3)
    await adispose_identity(identity_id)

asyncio.run(main())

CLI Usage

Create identity

burnd create --task "signup verification flow" --provider stub -o identity.json

Create identity with secrets output

burnd create --task "email flow" --provider stub -o identity.json --secrets-output secrets.json

Get identity

burnd get <identity-id>

Poll inbox

burnd poll --identity-id <identity-id> --limit 10

or using exported files:

burnd poll --identity-file identity.json --secrets-file secrets.json --limit 10

Rotate and dispose

burnd rotate <identity-id> --reason "refresh identity"
burnd dispose <identity-id>

Show runtime config

burnd status

Framework Examples

LangChain

from burner.adapters.langchain import get_langchain_tools

tools = get_langchain_tools()

CrewAI

from burner.adapters.crewai import get_crewai_tools

tools = get_crewai_tools()

AutoGen

from burner.adapters.autogen import get_autogen_function_map, get_autogen_tool_specs

function_map = get_autogen_function_map()
tool_specs = get_autogen_tool_specs()

Config

Configuration is loaded from BURNER_ environment variables (or .env).

Common settings:

  • BURNER_DEFAULT_REGION
  • BURNER_DEFAULT_PROVIDER
  • BURNER_DEFAULT_TTL_SECONDS
  • BURNER_GUARDRAIL_MODE
  • BURNER_ALLOWED_PURPOSES
  • BURNER_ALLOWED_TARGET_DOMAINS
  • BURNER_MAX_IDENTITY_TTL_SECONDS
  • BURNER_MAX_ROTATIONS_PER_HOUR
  • BURNER_PROVIDER_FALLBACK_ORDER
  • BURNER_ENCRYPTED_STORAGE_KEY
  • BURNER_ENCRYPTED_STORAGE_PATH

Development

pip install -e .[dev]
python -m pytest
python -m ruff check .
python -m mypy burner

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burnd-1.0.0.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

burnd-1.0.0-py3-none-any.whl (30.6 kB view details)

Uploaded Python 3

File details

Details for the file burnd-1.0.0.tar.gz.

File metadata

  • Download URL: burnd-1.0.0.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for burnd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4f15140952abe596ec493a9e34b114231b22ea468e3186b8fa33c3e312f48b7b
MD5 ec93a14bf6c16fecb0c24fa9465f7a40
BLAKE2b-256 f5435c3e5637bac9a9d07877e395adecbdfe41ea1309280d2f95619a39602806

See more details on using hashes here.

File details

Details for the file burnd-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: burnd-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 30.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for burnd-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1861db51fe1169a4054fb186b437130f000c7c37bb148c7efb745962c87833fd
MD5 0b2a0c3814c8426235059c8dac56ab82
BLAKE2b-256 7227e89e4dee9ec05918af120dff656ca45e83fa4cf5815ad11e2d6b6f06d71e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page