Skip to main content

Python CLI for scaffolding and managing Terse projects.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

terse-cli

Python CLI for scaffolding, generating, testing, and deploying Terse jobs.

Installation

pipx install terse-cli

The CLI installs the published terse-sdk automatically.

Don't have pipx? Install it first:

# macOS
brew install pipx && pipx ensurepath

# Ubuntu/Debian
sudo apt install pipx && pipx ensurepath

# Generic
python3 -m pip install --user pipx && python3 -m pipx ensurepath

Then restart your shell.

Requirements

  • Python >=3.11
  • uv for working with scaffolded projects

The CLI is installed via pipx, but the generated project scaffold uses uv sync and uv run.

Quick Start

terse init my-terse-job
cd my-terse-job
uv sync
terse test

If you connect integrations later, regenerate the project helpers:

terse generate

Commands

  • terse init [PROJECT_NAME]
  • terse generate
  • terse integrate
  • terse run [JOB_NAME] --event ... --event-file ...
  • terse test [JOB_NAME]
  • terse deploy

Supported Generated Helpers

The current Python codegen surface is intentionally small:

  • Schedule.cron(...)
  • Attio.skill(...)
  • Snowflake.skill(...)
  • deterministic wrappers on agent.tools.attio and agent.tools.snowflake

terse generate writes these helpers into src/terse_generated.py inside your project.

For example, after generating Snowflake helpers and registering skills=[Snowflake.skill()], a job can call:

from terse_sdk import CronJobInputEvent
from terse_generated import TerseAgent

def handle(event: CronJobInputEvent, agent: TerseAgent) -> None:
    result = agent.tools.snowflake.execute_query(query="select current_date()")
    print(result.rowCount)

Environment Variables

  • TERSE_API_KEY: required for terse generate, terse deploy, and any agent/tool calls made by your job
  • TERSE_BACKEND_URL: optional backend override for local development
  • TERSE_FRONTEND_URL: optional frontend override for local development

Typical Workflow

terse init my-terse-job
cd my-terse-job
uv sync
terse test
terse deploy

To run a job against a serialized event:

terse run --event '{"integrationType":"cron_job","eventType":"manual","formattedContent":"Manual trigger","debugLog":"Manual trigger"}'

Source

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

terse_cli-0.1.4.tar.gz (52.6 kB view details)

Uploaded Source

Built Distribution

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

terse_cli-0.1.4-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file terse_cli-0.1.4.tar.gz.

File metadata

  • Download URL: terse_cli-0.1.4.tar.gz
  • Upload date:
  • Size: 52.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for terse_cli-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ee10072df14657763bea54143d6842126bdcd56e947c2c7d87ada8b3d922e022
MD5 f84ca71863487713fca9c91851aaba43
BLAKE2b-256 8e5b0396a295c4e5ae02a2e5e7a5cb28b5ab8bf35cdb982df4a3af970930fb86

See more details on using hashes here.

File details

Details for the file terse_cli-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: terse_cli-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 29.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for terse_cli-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 253b822f40aff7312c245c0e337fc464a5810de53c28aa7fe52300aee18cc7f0
MD5 5aecb5ed9fa92cb7e7517d241c7a6333
BLAKE2b-256 1bd842526341f29c8e4a6a0ba00548a2d91354b53ec4f828aba4d92dacb42526

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