Skip to main content

Official Python SDK for the EolasWork agentic platform

Project description

eolaswork

Official Python SDK for the EolasWork agentic platform.

Install

pip install eolaswork

Python 3.11+. Sync + async clients ship together.

Quickstart

from eolaswork import Client

client = Client(api_key="nxa_...")        # or set EOLASWORK_API_KEY

# Discover
me     = client.account.whoami()
roles  = client.roles.list()
models = client.models.list()

# Create a task + run an agent
task = client.tasks.create(title="Q2 board prep")
client.files.upload(task.id, "./Q2_sales.xlsx")

run = client.runs.create(
    task_id=task.id,
    prompt="Build a board-ready summary from the Excel I attached.",
    role="research-analyst",
    model="claude-opus-4-7",
    skills=["xlsx-reader"],
    webhook_url="https://my-app.example.com/eolaswork/hook",  # optional
)

# Three ways to wait
final = client.runs.wait(run.id, timeout=300)           # blocks
# or:
for ev in client.runs.stream(run.id):                   # live SSE
    print(ev.kind, ev.payload)
# or: don't wait; let the webhook arrive at your endpoint.

print(final.status, final.output)

Async

import asyncio
from eolaswork import AsyncClient

async def main():
    async with AsyncClient(api_key="nxa_...") as client:
        task = await client.tasks.create(title="async run")
        run = await client.runs.create(task_id=task.id, prompt="...")
        async for ev in client.runs.astream(run.id):
            print(ev)

asyncio.run(main())

Webhook receiver

from eolaswork.webhooks import verify_signature

@app.post("/eolaswork/hook")
def hook(request):
    payload = verify_signature(
        raw_body=request.body,
        signature_header=request.headers["X-EolasWork-Signature"],
        secret=os.environ["EOLASWORK_WEBHOOK_SECRET"],
    )
    print(payload.run_id, payload.status, payload.output)
    return "", 204

Configuration

Env var Default Meaning
EOLASWORK_API_KEY required Bearer key (create at /settings/api-keys)
EOLASWORK_BASE_URL https://nexa.aihq.ie Backend host (override for self-hosted)

Explicit constructor args win over env vars:

client = Client(api_key="...", base_url="https://eolaswork.your-co.com",
                timeout=120.0, max_retries=5)

Resource surface

Resource What it does
client.account whoami, instructions, preferences, artifacts
client.api_keys list / create / revoke programmatic keys
client.tasks conversations CRUD + send_message
client.runs create / retrieve / list / cancel / wait / stream / approve / deny
client.files upload / list / download / delete / to_pdf
client.roles catalogue + file content (read-only)
client.teams catalogue + file content (read-only)
client.skills catalogue + file content (read-only)
client.models LLM model catalogue + providers
client.followups cross-conversation action items
client.memory user-level KV memory

Async variants share the exact same surface on AsyncClient -- every method is awaitable.

License

MIT.

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

eolaswork-0.1.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

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

eolaswork-0.1.0-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file eolaswork-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for eolaswork-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8d607ff639f91132fa87dfdc6c3799c1cf0d82e74f6f428299c9abd1c0d2be39
MD5 dec257a7bb55293e8953241626cfb93d
BLAKE2b-256 680392bb5651eecdfd77c8bd650f6a3598a71cf442dadcf90acec1bf22aa694c

See more details on using hashes here.

Provenance

The following attestation bundles were made for eolaswork-0.1.0.tar.gz:

Publisher: publish-eolaswork-python.yml on eolasflow/eolaswork

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

File details

Details for the file eolaswork-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for eolaswork-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 15dfabb6fb4b6b9f692ded413f5c177ed40700a76c7af35982a2fab5520a96c6
MD5 c4f540dc23101fb65bf3b833c50f998a
BLAKE2b-256 d7a1875070a1e8b815398c08cd828662695455f586c5cf96f60af34e439432c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for eolaswork-0.1.0-py3-none-any.whl:

Publisher: publish-eolaswork-python.yml on eolasflow/eolaswork

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