Python SDK for building jobs on the Terse platform.
Project description
terse-sdk
Python SDK for building jobs on the Terse platform.
Most users should start with terse-cli, which scaffolds a project and generates terse_generated.py helpers for the currently supported trigger and skill surface.
Installation
python -m pip install terse-sdk
Runtime API
The SDK provides:
Tersefor runtime job registration@app.job(...)for declaring jobsTerseAgentfor agent runs and deterministic tool execution- typed event models such as
CronJobInputEvent - hand-written request/response models exported from
terse_sdk
Quick Start
from terse_sdk import CronJobInputEvent, EventType, Terse, TerseAgent
app = Terse()
@app.job(
name="example-job",
triggers=[],
skills=[],
)
def example(event: CronJobInputEvent, agent: TerseAgent) -> None:
for stream_event in agent.run(
"Answer with one short, cute sentence about this cron job.",
event,
):
if stream_event.type == EventType.FINAL_OUTPUT:
print(stream_event.finalOutput)
example(
CronJobInputEvent(
event_type="manual",
formatted_content="Manual local run",
debug_log="README example",
),
TerseAgent(),
)
That example is intentionally self-contained. In a real Terse project, trigger and skill configs normally come from the generated helpers in terse_generated.py, not from manually constructing low-level DTOs.
Generated Helpers
The SDK package does not generate project helpers by itself.
If you scaffold a project with terse init and then run terse generate, your project gets src/terse_generated.py with the currently supported helpers:
Schedule.cron(...)Attio.skill(...)Snowflake.skill(...)- deterministic wrappers on
agent.tools.attioandagent.tools.snowflake
Example inside a generated project:
from terse_generated import Schedule, Snowflake, TerseAgent
from terse_sdk import CronJobInputEvent, Terse
app = Terse()
@app.job(
name="snowflake-job",
triggers=[Schedule.cron("0 9 * * 1")],
skills=[Snowflake.skill()],
)
def example(event: CronJobInputEvent, agent: TerseAgent) -> None:
result = agent.tools.snowflake.execute_query(query="select current_date()")
print(result)
Environment Variables
TERSE_API_KEY: required for agent runs and deterministic tool executionTERSE_BACKEND_URL: optional backend override for local developmentTERSE_FRONTEND_URL: optional frontend override for local development
Recommended Path
If you want the full project workflow, install the CLI instead:
python -m pip install terse-cli
terse init my-terse-job
Source
- Homepage: useterse.ai
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file terse_sdk-0.1.2.tar.gz.
File metadata
- Download URL: terse_sdk-0.1.2.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed8ba41fb04f4dec2a85dcb37dbdee7c268f1bc2959307ce4591c347345396b0
|
|
| MD5 |
7e589e29f9edd172feaf8fc21e535b10
|
|
| BLAKE2b-256 |
5f90b2f77c8f56d544a40ab85068b3a815030cac77f191d4a7be0ad3c07df91d
|
File details
Details for the file terse_sdk-0.1.2-py3-none-any.whl.
File metadata
- Download URL: terse_sdk-0.1.2-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eeccabf3ec0cda18bfe65b63ef0e76b73fb3ef62e2552ebf6a18a72452744b50
|
|
| MD5 |
67a85dfbbdaa2097c360304321745d47
|
|
| BLAKE2b-256 |
0b1e424b45b4e4b8d1f303a72674025258dd831dd4cedb28851d4a7e4039abb2
|