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-3.0.4.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

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

stigmer-3.0.4-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for stigmer-3.0.4.tar.gz
Algorithm Hash digest
SHA256 fc3ba3a7e793900e75d282d691c102997f1f5d11ef232fe4202af130d05ee364
MD5 cafbf68efa81ad01c2a080160147c34a
BLAKE2b-256 b045ddeb87e8e70f4a6ce1a20fbf8a1c02947e8eea870d127107d36fb03d8c0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for stigmer-3.0.4.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-3.0.4-py3-none-any.whl.

File metadata

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

File hashes

Hashes for stigmer-3.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b77c57f501564793f87bd25707aac47bbaff4cabc9cd1d075cac8407a39d48ab
MD5 dfa935b2f90f3083d1ae5faf59392bfa
BLAKE2b-256 99a028d1fbea0627bedd46642d86fa414631c8ff4c36282fad44845bf3565150

See more details on using hashes here.

Provenance

The following attestation bundles were made for stigmer-3.0.4-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