Skip to main content

Python SDK for Trove — managed POSIX filesystem for AI agents

Project description

trove-sdk · Python

Python client for Trove — managed POSIX filesystem for AI agents.

Installation

pip install trove-sdk
# or
uv add trove-sdk

Requires Python 3.10+.

Usage

Filesystem operations

from trove_sdk import TroveClient

with TroveClient(api_key="trove-sk-...", namespace="alice") as client:
    # Run shell commands
    client.exec("mkdir -p workspace/data")
    output = client.exec("ls workspace/")

    # Write a text file
    client.write("workspace/data/notes.txt", "hello world")

    # Upload binary
    with open("image.png", "rb") as f:
        client.upload("workspace/data/image.png", f)

    # Delete
    client.delete("workspace/data/notes.txt")

Async

from trove_sdk import AsyncTroveClient

async with AsyncTroveClient(api_key="trove-sk-...", namespace="alice") as client:
    await client.exec("echo hello")
    await client.write("workspace/hello.txt", "hi")

Key management (multi-tenant)

Use an admin key from the dashboard to mint scoped keys per customer:

from trove_sdk import TroveAdminClient

with TroveAdminClient(api_key="trove-sk-admin-...", workspace_id="ws-...") as admin:
    # Mint a scoped key for a customer
    key = admin.create_key("customer-alice", namespace="alice")
    print(key.api_key)  # store this — shown once

    # List active keys
    keys = admin.list_keys()

    # Revoke
    admin.revoke_key(key.key_id)

API reference

TroveClient(api_key, namespace, *, base_url?)

Method Description
exec(command) Run a shell command. Returns stdout as a string.
write(path, content) Write a UTF-8 text file. Returns FileResult.
upload(path, data) Upload bytes or a file-like object. Returns FileResult.
delete(path) Delete a file or directory. Returns the deleted path.

AsyncTroveClient mirrors the same interface with async/await.

TroveAdminClient(api_key, workspace_id, *, base_url?)

Method Description
create_key(name, *, namespace?) Mint a new workspace key, optionally scoped to a namespace.
list_keys() List all active keys for the workspace.
revoke_key(key_id) Revoke a key immediately.

AsyncTroveAdminClient mirrors the same interface with async/await.

Errors

All errors raise TroveError(message, status_code).

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

trove_sdk-0.2.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

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

trove_sdk-0.2.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file trove_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: trove_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for trove_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9638ae03c5685f9ea095ebd6c17d288a90304dcd34f5633a6bca072258cd3e40
MD5 6542ed5576082856434c4e17931cbb46
BLAKE2b-256 0602dad3abfbb9b9765e6c0006e5e124c10aac294c11b26ff92624d90bb86601

See more details on using hashes here.

File details

Details for the file trove_sdk-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: trove_sdk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for trove_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d610441b1ee19bb2c0fb05c91be0e13f02efbb7ca0aa82aafc23174a05ac499
MD5 736224f60c713bdd3592b48c3b3f8e03
BLAKE2b-256 62bf06b60bccb6bef4ba7d5c50b6e3c2400db7b233605058f2c33a1deda9e05c

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