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.7

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.7
File Size Uploaded Provenance
uptonica-0.2.7.tar.gz 60.4 kB With provenance Details

Built distribution (wheel)

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

Total release size: 103.5 kB

Release files / uptonica-0.2.7.tar.gz

Download URL uptonica-0.2.7.tar.gz
Size 60.4 kB
Tags Source
SHA-256 checksum
How to use checksums
67c235f49d585f8c489f98efbc19ad46bb7640e3e1c8786294c631c14bebfa08
BLAKE2b-256 checksum
How to use checksums
b4d22ab6fc1c35abf00cc08ea1dd46494c70a2a01587becd59d43daca5614be8
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.7-py3-none-any.whl

Download URL uptonica-0.2.7-py3-none-any.whl
Size 43.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af976ac29d29a6f7824601649a1674057af7ad58fd8b197f3dfa8598a21c339e
BLAKE2b-256 checksum
How to use checksums
859fe1a1ebd5d272a342a8dfeb9600eb564daf42897c026d5ae9bb58ec2edc5b
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.7

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.7.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