Skip to main content

uptonica

PyPI License

The Uptonica command-line client for developers, agencies, and anyone automating their workspace — one binary, scope decided by the token you configure, not by which command you type.

Install

pip install uptonica   # or: uv tool install uptonica

Log in

uptonica login

Opens your browser, you confirm the code and pick which workspace(s) and areas the token should reach, and the token comes back to the CLI on its own — no copy-paste. (On a machine with no browser, uptonica login --no-browser prints the URL and code to visit instead.)

Prefer to mint the token yourself? Go to Settings -> API Tokens in your Uptonica workspace (https://app.uptonica.com/account/api-tokens), pick "Terminal access", choose scope, copy it, then:

uptonica config set-token

Use it

uptonica whoami
uptonica tenant use my-store          # set a default so you don't repeat --tenant
uptonica tools --search contact       # find a tool without scrolling the whole catalog
uptonica tools --show catalog.product.get   # see its full description + parameters
uptonica call catalog.stats.summary
uptonica call crm.contact.create_task --arg title="Follow up" --arg priority=2
uptonica ask "quanto ho venduto questo mese?"

If your token reaches more than one workspace, --tenant on any command overrides the default for that one call.

A write tool that needs confirmation returns a confirmation_token; re-run the same command with --confirm <token> within ~15 minutes to actually apply it. --dry-run previews a write without executing it. A tool name that doesn't exist gets a "did you mean" suggestion instead of a bare error.

Ask in natural language

uptonica ask "<message>" skips the tool catalog entirely — Lia (the same assistant behind chat and the mobile app) reads your request and picks the tool(s) herself, with the same per-tool permissions she already has everywhere else. A workspace's conversation continues across calls by default, so a follow-up like uptonica ask "sì" answers whatever Lia just asked (she always asks before a write, same as chat). Use --new to start a fresh thread, or --conversation <uuid> to pick a specific one.

Run uptonica with no arguments (or uptonica ask with no message) to open an interactive session instead — one process for the whole conversation, with /workspace to list or switch workspaces, /new for a fresh thread, and /help for the rest. Ctrl+D exits. Enter sends a message; Option+Enter (Alt+Enter) starts a new line without sending. Every tool Lia calls shows up live (◐ catalog.stats.summary... → ✓), so a slow answer never looks like it's just hung.

For AI agents

If you're an agent (Claude Code, Codex, or anything else) about to drive this CLI on someone's behalf, read AGENTS.md first — discovery order, how to handle a multi-workspace token, and the dry-run/confirm flow for writes.

Claude Code users: this repo is also a plugin marketplace, so you don't need to clone anything to get that guidance loaded automatically:

/plugin marketplace add tonic-tech/uptonica-cli
/plugin install uptonica@uptonica-cli

Status

Actively developed — v0.2.2, built directly on the same tool API that powers Uptonica's in-app assistant. See the repo issues for what's still open.

Metadata

Release files for uptonica 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uptonica 0.2.5
File Size Uploaded Provenance
uptonica-0.2.5.tar.gz 48.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for uptonica 0.2.5
File Interpreter ABI Platform
uptonica-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 86.0 kB

Release files / uptonica-0.2.5.tar.gz

Download URL uptonica-0.2.5.tar.gz
Size 48.7 kB
Tags Source
SHA-256 checksum
How to use checksums
61f6099562937dd95c28e0de5b5112f094cb2fb3d9812b78d2ce9793724d53c3
BLAKE2b-256 checksum
How to use checksums
d6d840bf96f9317629ca8a2047ef402c35c27017a657fecb73e26da52c4cf86b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / uptonica-0.2.5-py3-none-any.whl

Download URL uptonica-0.2.5-py3-none-any.whl
Size 37.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ef12e502482f247dd01bd1732bb6a6d794aaabee6f304b8976e0019155dce627
BLAKE2b-256 checksum
How to use checksums
73995b50c96cf16ab1f3c158cf3f1faba98d8bdb98c2aa3f8109803d54eb52f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Security for uptonica 0.2.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for uptonica-0.2.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page