Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# onepin

Python SDK + CLI for [OnePin](https://onepin.ai) — the AI-powered voice workflow platform.
**Onepin is a voice workflow platform that orchestrates, validates, and ships production-ready audio across 100+ TTS models.** This is the official Python SDK + CLI for [Onepin](https://onepin.ai).

[![PyPI version](https://img.shields.io/pypi/v/onepin)](https://pypi.org/project/onepin/)
[![Python versions](https://img.shields.io/pypi/pyversions/onepin)](https://pypi.org/project/onepin/)
Expand Down Expand Up @@ -33,7 +33,7 @@ Credential resolution order: `--api-key` flag → `ONEPIN_API_KEY` env var → s

## Use from your AI coding tool

OnePin ships an [Agent Skill](https://agentskills.io) that teaches AI coding tools to drive the
Onepin ships an [Agent Skill](https://agentskills.io) that teaches AI coding tools to drive the
`onepin` CLI for you — list and run workflows, check run status, browse voices and templates —
without leaving your editor. It works in Claude Code, Cursor, OpenAI Codex, Gemini CLI, and GitHub
Copilot. Install it with the CLI (it auto-detects which tools you have):
Expand All @@ -48,13 +48,13 @@ onepin skill uninstall # remove it
```

In **Claude Code** the skill is then invocable as `/onepin`; other tools load it automatically when
your request is about OnePin. After the first install, restart your tool (or run `/reload-plugins`
your request is about Onepin. After the first install, restart your tool (or run `/reload-plugins`
in Claude Code) so it picks up the new skills directory. The skill drives the same `onepin` CLI, so
run `onepin login` first.

## Version compatibility

The OnePin API advertises the minimum SDK version it still accepts. When a response indicates your
The Onepin API advertises the minimum SDK version it still accepts. When a response indicates your
installed `onepin` is **below that floor**, the SDK stops with a clear, copy-paste upgrade message:

```
Expand All @@ -72,7 +72,7 @@ client = onepin.make_client(token="op_live_...")
client.workflows.list() # raises onepin.OnePinUpgradeRequiredError if the SDK is too old
```

The CLI also nudges you when a newer release is available on PyPI (surfaced through the OnePin agent
The CLI also nudges you when a newer release is available on PyPI (surfaced through the Onepin agent
skill). Set `ONEPIN_NO_UPDATE_CHECK=1` to silence the recommended-upgrade check.

## Command reference
Expand Down
12 changes: 11 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@ build-backend = "hatchling.build"
[project]
name = "onepin"
dynamic = ["version"]
description = "OnePin Python SDK + CLI"
description = "Onepin Python SDK + CLI — orchestrate, validate & ship production-ready voice (TTS) audio across 100+ models"
readme = "README.md"
keywords = [
"onepin", "tts", "text-to-speech", "speech-synthesis", "voice",
"voice-ai", "voice-agents", "audio", "workflow", "sdk", "cli",
"elevenlabs", "cartesia",
]
license = "MIT"
license-files = ["LICENSE"]
requires-python = ">=3.10"
Expand All @@ -32,12 +37,17 @@ classifiers = [
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Typing :: Typed",
"Topic :: Multimedia :: Sound/Audio :: Speech",
"Topic :: Software Development :: Libraries :: Python Modules",
"Environment :: Console",
"Operating System :: OS Independent",
]

[project.scripts]
onepin = "onepin._cli.main:app"

[project.urls]
Homepage = "https://onepin.ai"
Documentation = "https://docs.onepin.ai"
Source = "https://github.com/podonos/onepin-python"
Issues = "https://github.com/podonos/onepin-python/issues"
Expand Down
Loading