Skip to main content

Stigmer Python SDK — typed API client for all Stigmer platform resources

Project description

stigmer

Python SDK for the Stigmer platform. Provides typed API clients for all Stigmer resources with authentication, error handling, and cross-resource search.

Installation

pip install stigmer

stigmer-protos (generated protobuf stubs) is installed automatically as a dependency.

Quick Start

from stigmer import StigmerClient, AgentInput

with StigmerClient("sk_live_abc123") as client:
    agent = client.agents.create(AgentInput(name="my-agent", org="my-org"))
    print(agent.metadata.name)

Or without a context manager:

client = StigmerClient("sk_live_abc123")
agent = client.agents.get("agent-id")
client.close()

Resource Clients

Every resource type has a typed client accessible as a property on StigmerClient:

Property Resource
agents Agent
agent_executions AgentExecution
agent_instances AgentInstance
api_keys ApiKey
environments Environment
execution_contexts ExecutionContext
iam_policies IamPolicy
identity_accounts IdentityAccount
identity_providers IdentityProvider
mcp_servers McpServer
organizations Organization
projects Project
sessions Session
skills Skill
workflows Workflow
workflow_executions WorkflowExecution
workflow_instances WorkflowInstance
search Cross-resource search

Common Operations

from stigmer import StigmerClient, AgentInput, ListParams, ResourceRef, Page

with StigmerClient("sk_live_abc123") as client:
    # Create
    agent = client.agents.create(AgentInput(
        name="my-agent",
        org="my-org",
        description="Handles customer inquiries",
        instructions="Be helpful and concise.",
    ))

    # Get by ID
    agent = client.agents.get("agent-id")

    # Get by reference (org + slug)
    agent = client.agents.get_by_reference(ResourceRef(org="my-org", slug="my-agent"))

    # Update
    updated = client.agents.update(AgentInput(
        name="my-agent",
        org="my-org",
        description="Updated description",
    ))

    # Delete
    deleted = client.agents.delete("agent-id")

    # List (search-backed)
    results = client.agents.list(ListParams(
        org="my-org",
        query="customer",
        page=Page(num=1, size=20),
    ))

Cross-Resource Search

from stigmer import StigmerClient, ApiResourceKind, SearchParams

with StigmerClient("sk_live_abc123") as client:
    results = client.search.query(SearchParams(
        kinds=[ApiResourceKind.agent, ApiResourceKind.skill],
        org="my-org",
        query="customer support",
    ))

Error Handling

All SDK operations raise StigmerError with structured error codes:

from stigmer import StigmerClient, StigmerError, is_not_found, is_retryable

with StigmerClient("sk_live_abc123") as client:
    try:
        agent = client.agents.get("nonexistent")
    except StigmerError as err:
        if is_not_found(err):
            print("Agent not found")
        elif is_retryable(err):
            print("Transient error, retry later")
        else:
            print(f"Error [{err.code.value}]: {err}")

Error codes: not-found, permission-denied, unauthenticated, invalid-argument, already-exists, resource-exhausted, failed-precondition, internal, unavailable, cancelled, unknown.

Configuration

StigmerClient(
    api_key: str,               # Stigmer API key (required)
    *,
    base_url: str = "api.stigmer.ai:443",  # gRPC target address
    insecure: bool = False,     # Skip TLS (local development only)
)

Code Generation

The resource clients in src/stigmer/_gen/ are generated from protobuf service schemas. To regenerate after proto changes:

cd sdk/python
make codegen

Handwritten code lives in src/stigmer/ (outside _gen/): _client.py, _transport.py, _interceptors.py, _search.py, and __init__.py.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

stigmer-0.0.76.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

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

stigmer-0.0.76-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

Details for the file stigmer-0.0.76.tar.gz.

File metadata

  • Download URL: stigmer-0.0.76.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stigmer-0.0.76.tar.gz
Algorithm Hash digest
SHA256 1bbdffba83ab512d67ec0e2bce0abda31b8f1cd8818e34c3aa167a2030134fd8
MD5 7862b8ca0f77af1854034de4e351af08
BLAKE2b-256 bd73b132b43bf071ecc3f4feab0f4c2ecd704f95779a6e05dff86f99db9f8cb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for stigmer-0.0.76.tar.gz:

Publisher: release.python-sdk.yaml on stigmer/stigmer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stigmer-0.0.76-py3-none-any.whl.

File metadata

  • Download URL: stigmer-0.0.76-py3-none-any.whl
  • Upload date:
  • Size: 37.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stigmer-0.0.76-py3-none-any.whl
Algorithm Hash digest
SHA256 c10f46d31f64810841a89c933fdda055b8268f51dc19e36c041e1b19b339bb9b
MD5 4896093c68381fbdd7d39314b58456c7
BLAKE2b-256 6268d2d27ea83d1bc2b993ea8cfa6079a3982ce8e32d6ce71692496bfede66d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for stigmer-0.0.76-py3-none-any.whl:

Publisher: release.python-sdk.yaml on stigmer/stigmer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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