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.io: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.46.tar.gz (18.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-0.0.46-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for stigmer-0.0.46.tar.gz
Algorithm Hash digest
SHA256 501f3af0d89572bcc5a9a75ff9235ef438874307860e5d4190397fa948ebc554
MD5 16db4514325fd5baa81f9f011e7c6048
BLAKE2b-256 d7dccdc37646ecbc814308c4113eefe06bb7af6850c277da9e13d767cba6d65a

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for stigmer-0.0.46-py3-none-any.whl
Algorithm Hash digest
SHA256 3597c1a33e9e18dd600d36adaf7a37f4dce6126df04e6419b373a48dd4baae07
MD5 d9e65255311de7500f44370be845891c
BLAKE2b-256 c52ab0ff2b2a99758d448e724ac677fd44a77918ef86279ab2e4345ded4a2c8e

See more details on using hashes here.

Provenance

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