VCursor SDK & CLI - Generate videos from text, images, and URLs using AI
Project description
VCursor Python SDK & CLI
Generate videos from text, images, and URLs using AI.
Installation
pip install vcursor-cli
Quick Start
As a library (embedded in code)
from vcursor import VCursor
client = VCursor(api_key="vk-...")
# Submit a video generation task
resp = client.submit("a cat playing piano in a jazz club")
# Wait for completion with progress callback
result = client.wait_for_completion(
resp.task_id,
on_progress=lambda p: print(f"{p.data.progress}%")
)
print(result.data.products.url)
Async usage
import asyncio
from vcursor import VCursorAsync
async def main():
async with VCursorAsync(api_key="vk-...") as client:
resp = await client.submit("sunset timelapse over mountains")
result = await client.wait_for_completion(resp.task_id)
print(result.data.products.url)
asyncio.run(main())
Concurrency limiting
The server enforces per-user rate limits based on subscription tier:
| Tier | Standard Requests | Agent Requests | Window |
|---|---|---|---|
| Free | 3 | 1 | Lifetime |
| Pro | 30/hr | 5/hr | Rolling 1h |
| Plus | 120/hr | 15/hr | Rolling 1h |
# Check current rate limit status
status = client.check_concurrency("standard")
print(f"Standard: {status.summary['standard'].used}/{status.summary['standard'].limit}")
print(f"Agent: {status.summary['agent'].used}/{status.summary['agent'].limit}")
# Client-side limit (capped at server limit)
client = VCursor(api_key="vk-...", max_concurrency=10)
As a CLI
# Authenticate
vcursor login
# Generate a video
vcursor generate "a cat playing piano"
# Agent mode
vcursor generate --agent "create a 30s commercial"
# Check concurrency status
vcursor concurrency
# With concurrency limit
vcursor generate --max-concurrency 2 "sunset timelapse"
API Reference
VCursor / VCursorAsync
| Method | Description |
|---|---|
submit(prompt, **kw) |
Submit a standard video generation task |
get_progress(task_id) |
Get task progress |
wait_for_completion() |
Poll until task completes |
cancel_task(task_id) |
Cancel a running task |
submit_agent(message) |
Submit an agent mode task |
get_agent_progress() |
Get agent task progress |
wait_for_agent_completion() |
Poll until agent task completes |
check_concurrency() |
Check concurrency limit status |
Configuration
Config is stored in ~/.vcursor/config.json (shared with the Node.js CLI).
Environment variables:
VCURSOR_API_KEY- API keyVCURSOR_SERVER- Server URL
License
MIT
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 vcursor_cli-1.0.26.tar.gz.
File metadata
- Download URL: vcursor_cli-1.0.26.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ee711411e2c35bb78c846991774f6e5e6aba73cefeef586f43fe2347650b756
|
|
| MD5 |
2028f4796b1bcd418009874aeeb9ea83
|
|
| BLAKE2b-256 |
d54ae174471e872e97f2f6d883edec2975e9edf2776a6532ebbf74f691ab7e3c
|
Provenance
The following attestation bundles were made for vcursor_cli-1.0.26.tar.gz:
Publisher:
python-publish.yml on JThh/vcursor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vcursor_cli-1.0.26.tar.gz -
Subject digest:
9ee711411e2c35bb78c846991774f6e5e6aba73cefeef586f43fe2347650b756 - Sigstore transparency entry: 919165712
- Sigstore integration time:
-
Permalink:
JThh/vcursor@a7f4c2b22af5b2640ae6c601100d5d4c705b8724 -
Branch / Tag:
refs/heads/app/cli - Owner: https://github.com/JThh
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@a7f4c2b22af5b2640ae6c601100d5d4c705b8724 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vcursor_cli-1.0.26-py3-none-any.whl.
File metadata
- Download URL: vcursor_cli-1.0.26-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea5b86832a57fe8e1f9b31b66ad029e5bd199d9810b282987a6d1b018ed7fab3
|
|
| MD5 |
dd0a56b4bd94fcdadf384c19b1130bd0
|
|
| BLAKE2b-256 |
4a698b2f882b56240c13e9119dcaf49580087fa05459b9251b21b8b6083dcfcc
|
Provenance
The following attestation bundles were made for vcursor_cli-1.0.26-py3-none-any.whl:
Publisher:
python-publish.yml on JThh/vcursor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vcursor_cli-1.0.26-py3-none-any.whl -
Subject digest:
ea5b86832a57fe8e1f9b31b66ad029e5bd199d9810b282987a6d1b018ed7fab3 - Sigstore transparency entry: 919165715
- Sigstore integration time:
-
Permalink:
JThh/vcursor@a7f4c2b22af5b2640ae6c601100d5d4c705b8724 -
Branch / Tag:
refs/heads/app/cli - Owner: https://github.com/JThh
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@a7f4c2b22af5b2640ae6c601100d5d4c705b8724 -
Trigger Event:
workflow_dispatch
-
Statement type: