> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eigenpal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Official TypeScript and Python SDKs for triggering EigenPal workflows and agents from your code.

EigenPal ships official SDKs for **TypeScript** and **Python**. Both are typed
wrappers over the same REST API the CLI uses and are generated from the OpenAPI
spec.

Use an SDK when you want to trigger workflows or agents from application code.
Use the [CLI](/cli/overview) for authoring and local iteration, and the
[API reference](/api-reference) for the raw HTTP surface.

<CardGroup cols={2}>
  <Card title="TypeScript" icon="js" href="/sdks/typescript">
    `@eigenpal/sdk` on npm. Run workflows from Node, Bun, Deno, or the browser.
  </Card>

  <Card title="Python" icon="python" href="/sdks/python">
    `eigenpal` on PyPI. Run workflows from any Python 3.9+ app.
  </Card>
</CardGroup>

Both are open source:
[github.com/eigenpal/sdk-typescript](https://github.com/eigenpal/sdk-typescript)
and [github.com/eigenpal/sdk-python](https://github.com/eigenpal/sdk-python).

## Common SDK operations

Both SDKs expose the same core operations:

* A client you construct with an API key.
* A `run` call that starts a workflow or agent by target (`workflows.<slug>` or
  `agents.<slug>`). TypeScript uses `waitForCompletion`; Python exposes
  `wait_for_completion` and `run_and_wait` helpers for blocking flows.
* Multipart file upload built in: pass a file and the SDK sends
  `multipart/form-data`, no base64 needed.
* A typed validation error you can catch when inputs do not match the schema.

Get an API key from the dashboard under **Settings → API Keys**. Point either SDK
at a self-hosted deployment with `baseUrl` (TypeScript) or `base_url` (Python).
