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.2.1.tar.gz (24.3 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.2.1-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for stigmer-0.2.1.tar.gz
Algorithm Hash digest
SHA256 fced0a25131df5a9007fba16241728592caa826ed9ce0d91b0e8be09e942b4f2
MD5 a3f1f3cba698ae78c93aaf1d1b561e0d
BLAKE2b-256 b63249d3c82ebcd2c4963f3f156dfb4318b2390b56e625066efcfedd94b36925

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: stigmer-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 44.3 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8990e1985e0e200bc025eabf535c5fe545056cc88cbf01e20e71e145f185ec9e
MD5 7326dfcfa6b5a0e8543f0457f38ebd99
BLAKE2b-256 3a4ae35b7ce1d2d8982674ae6e97534ad470711d34710fb03b7951eff68fbd54

See more details on using hashes here.

Provenance

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