Skip to main content

posit-cli

A friendly command-line interface for Posit products, in the spirit of gh.

$ posit connect login https://connect.example.com             # OAuth, tokens in your OS keyring
$ posit connect api v1/user -q .username                      # gh-api-style raw request
$ posit connect deploy streamlit ./my-app                     # everything rsconnect can do

This project is in early-stage development and so far only supports Posit Connect's APIs.

Installation

Install posit-cli from PyPI with uv:

uv tool install posit-cli

To get unreleased changes, install from GitHub instead:

uv tool install git+https://github.com/posit-dev/posit-cli.git

If you authenticate to GitHub over SSH, use the git+ssh:// form (uv requires the git@ username):

uv tool install git+ssh://git@github.com/posit-dev/posit-cli.git

Each of these puts the posit executable on your PATH. To upgrade later, run uv tool upgrade posit-cli. See uv's Git authentication docs for tokens and other hosts.

Getting started

1. Log in. Point posit at your Connect server and authenticate. This runs an OAuth 2.1 flow in your browser and saves the tokens in your OS keyring, so you only do it once per server:

$ posit connect login https://connect.example.com

2. Try a request. Confirm you're connected by asking Connect who you are:

$ posit connect api v1/user -q .username

3. Deploy something. Anything rsconnect can deploy, posit can too:

$ posit connect deploy streamlit ./my-app

That's it — from here, explore posit connect --help for the full command set.

Authentication

posit connect login runs an OAuth 2.1 flow and stores tokens in your OS keyring; posit connect api and the deploy commands reuse those credentials automatically (including token refresh). You can also point at a server ad hoc with --server/CONNECT_SERVER and --api-key/CONNECT_API_KEY.

posit connect api

A gh api-style raw REST client, authenticated with your saved credentials. PATH is relative to the Connect API root (the /__api__ prefix is added for you):

$ posit connect api v1/user                          # GET, pretty-printed JSON
$ posit connect api v1/user -q .username             # filter with a jq expression
$ posit connect api "v1/content?limit=3" -q '.[].name'

-q/--jq runs the response through jq, like gh api --jq: string results print unquoted, one per line.

-i/--include prepends the HTTP status line and response headers to the output (handy for inspecting rate limits, request IDs, or the server version):

$ posit connect api v1/user -i

--paginate (GET only) follows Connect's pagination and prints all pages' results combined. It handles both of Connect's pagination styles — the cursor style (e.g. v1/audit_logs) and the page-number style (e.g. v1/users, v1/groups) — and leaves unpaginated endpoints unchanged:

$ posit connect api v1/users --paginate -q 'length'   # count every user

PATH may also be a full URL on the configured server — convenient for pasting a paging.next link straight back in. A URL for a different host is rejected.

Query parameters vs. request body

Like gh api, -f/-F fields default to a POST request body (adding any field flips the method to POST unless you pass -X). To send query parameters on a read, put them in the path or force GET:

$ posit connect api "v1/users?page_size=5"   # query params in the path
$ posit connect api v1/users -X GET -f page_size=5          # or force GET
$ posit connect api v1/content -f name=my-app              # POST body (creates content)

posit connect *

posit wraps rsconnect-python: it re-exposes the full rsconnect command set under posit connect, in addition to the api utility.

Using posit with Claude Code

This repo ships a skill (at skills/posit-cli/) that teaches coding agents to drive posit — auth, posit connect api, and deploys. Install it with the skills CLI:

npx skills add posit-dev/posit-cli

Metadata

Release files for posit-cli 0.1.1

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

Source distribution (sdist)

Source distribution for posit-cli 0.1.1
File Size Uploaded
posit_cli-0.1.1.tar.gz 69.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for posit-cli 0.1.1
File Interpreter ABI Platform
posit_cli-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 83.3 kB

Release files / posit_cli-0.1.1.tar.gz

Download URL posit_cli-0.1.1.tar.gz
Size 69.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8fd011f8e25a7b47f99c89a368e70c46a3b967d0a3503d0c97ea3d38dcb2774c
BLAKE2b-256 checksum
How to use checksums
02938c40b4314f9c5a322888439e500998ab0681ebcb7d97486aaddcae5ff1df
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 Aug 5, 2026.

Transparency log

Release files / posit_cli-0.1.1-py3-none-any.whl

Download URL posit_cli-0.1.1-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
90a7009b8e8532a5bc0173365608fbec8c69df2bd04cf9552ec0e84e82266cc1
BLAKE2b-256 checksum
How to use checksums
7beacf3590804abdffcbfe90e409477406a66ec9f722f734e35061440cde2338
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 Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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