Skip to main content

ThinkPlatform Client

ThinkPlatform Client provides the tp command-line interface and Python SDK for working with a ThinkPlatform service. Install it into a supported Python environment and connect it to a service URL and credentials supplied by your deployment.

Install

python -m pip install --upgrade pip
python -m pip install ThinkPlatform-client

The public binary wheels target CPython 3.11–3.13 on Linux x86_64 (glibc 2.28 or newer), macOS 11 or newer on Apple silicon (arm64), and Windows x86_64. Source distributions are not published. Other Python versions and platforms are outside the public wheel support matrix. Use a fresh virtual environment if migrating from a full ThinkPlatform runtime installation.

Command line

tp --help

Interactive profile setup guides a person through the connection and context choices without requiring them to look up organization or project IDs first. This command is not included in the published ThinkPlatform-client 0.6.103; the example below applies to a client build that includes the feature.

tp profile setup

The wizard asks for a profile name and connection defaults, authenticates with the configured credential, then lists accessible organizations and projects with numbered choices, names and IDs. Choose by number; the ID is shown only to help distinguish entries. After a summary and confirmation, the selected organization and project are saved in the named profile and that profile is activated. For example:

$ tp profile setup
Profile name [default]: staging
Base URL [https://thinkplatform.ai]:
Audience [api://04d6aecc-4540-463a-87e3-4024ffad7428]:
Auth mode [interactive-browser]:
Connecting to https://thinkplatform.ai using interactive-browser.
Organizations:
  1. Acme Research (ID: 42)
  2. Acme Sandbox (ID: 87)
Select organization: 1
Projects:
  1. Sensor project (ID: 301)
  2. Archive (ID: 318)
Select project: 1
Profile 'staging': https://thinkplatform.ai; interactive-browser; organization Acme Research (ID: 42); project Sensor project (ID: 301).
Save and activate this profile? [Y/n]: y

Entering staging creates or updates that target profile. An optional root --profile work supplies a different suggested profile name. The wizard resolves connection defaults for the target profile, rather than copying settings from whichever profile was previously active. Root CLI flags and environment variables continue to follow their usual precedence. Setup is interactive and requires a terminal; it rejects JSON output and --query before authentication or network access. Cancelling, an empty access list, or an authentication/API error leaves the saved configuration unchanged. The wizard makes read requests only; it does not create or modify service-side resources.

After setup, use ordinary commands with the active profile's saved connection, organization and project:

tp canvas pages list
tp canvas pages get <page_id>
tp mlops jobs list
tp db tables list

The default auto output uses readable tables, fields or text when possible, with JSON for complex payloads. No output flag is required. For machine-readable output or field extraction, opt in separately:

tp --json canvas pages list
tp --query user.username whoami

To switch saved profiles, use tp profile use staging. Root --profile, --org-id and --project-id flags are optional per-invocation overrides.

For agents and scripts, keep using the explicit, non-wizard commands. For example, inspect context with tp context orgs and tp context projects, then use tp configure --no-prompt with root --org-id and --project-id options. The existing tp configure prompt also remains available for offline setup of connection defaults without discovering organizations or projects.

With no deployment settings configured, the CLI uses https://thinkplatform.ai, API audience api://04d6aecc-4540-463a-87e3-4024ffad7428, and interactive-browser sign-in through a shared public client registration. The built-in tenant is 5a959e94-a278-467d-ab33-d59909a75bad; the built-in CLI application ID is 709439d2-4a99-44c2-8c35-9b1e71cc2e34. These are non-secret public application settings. Users do not need to register an app per installation or provide a client secret.

The registration is single-tenant, supports the http://localhost loopback redirect, and has device-code public-client flow enabled. Your organization may require administrator consent. A successful sign-in does not grant ThinkPlatform membership or resource permissions. The CLI uses the same REST client as the SDK.

For production browser/device authentication, the CLI stores tokens in the operating system's encrypted credential store and keeps a separate non-secret account record under ~/.config/thinkplatform/auth/. Later CLI processes reuse the account silently until Azure requires sign-in again. SDK client_from_profile() uses the same secure cache. If encrypted OS storage is unavailable, authentication fails closed without writing tokens in plaintext. On headless Linux without Secret Service, use Azure CLI authentication instead.

On macOS, this uses a dedicated ThinkPlatform CLI Keychain item. macOS may ask you to allow the Python interpreter to access it. A one-time permission can prompt again on later accesses; persistent permission is an optional trust decision for that interpreter. Changing Python installations can also require permission again. Older preview versions used a Microsoft shared item; the CLI does not read or migrate that item, so sign in again after upgrading if needed. Workspace managed-identity authentication does not use this local user cache.

Custom deployments and sign-in

For a different deployment, set its URL and API audience explicitly. An existing configured deployment that has no explicit auth mode continues to use azure-cli; use the mode approved for that deployment. These environment variables can be replaced by CLI options or a saved CLI profile:

export THINKPLATFORM_API_BASE_URL="https://thinkplatform.example"
export THINKPLATFORM_API_AUDIENCE="api://<api-application-id>"
export THINKPLATFORM_AUTH_MODE="azure-cli"
tp auth login

The examples use POSIX shell syntax; on PowerShell set environment variables with $env:NAME = "value". Azure CLI is a separate installation. Its credential uses the signed-in Azure CLI identity; the API must allow that identity and consent must permit access to its resource. Signing in alone does not establish service access. See Microsoft's Azure CLI credential documentation.

For browser or device-code sign-in to a different deployment, provide its approved public client application ID and tenant:

export THINKPLATFORM_AZURE_CLIENT_ID="<cli-public-client-application-id>"
tp --auth-mode device-code whoami
# Or, on a machine with a local browser:
tp --auth-mode interactive-browser whoami

Keep THINKPLATFORM_API_AUDIENCE configured for the target API. The API audience identifies the target API; THINKPLATFORM_AZURE_CLIENT_ID identifies the sign-in client. They serve different purposes. The CLI requests the API audience with /.default appended. Set the audience explicitly rather than relying on the legacy AZURE_CLIENT_ID audience fallback, which can accidentally target the sign-in client instead of the API.

The production CLI defaults apply only when the effective URL and audience are exactly https://thinkplatform.ai and api://04d6aecc-4540-463a-87e3-4024ffad7428, with browser or device-code auth selected. Explicit client ID and tenant environment variables override the built-in values. For custom URL/audience combinations, set the deployment's approved IDs yourself. Tenant lookup prefers THINKPLATFORM_AZURE_TENANT_ID over AZURE_TENANT_ID; client ID lookup prefers THINKPLATFORM_AZURE_CLIENT_ID over AZURE_CLIENT_ID. Client ID and tenant are read from the environment rather than stored in CLI profiles. The base URL, audience, auth mode, and connection settings can be selected through CLI flags or profiles.

For custom deployments, administrators should provision and validate a dedicated CLI public-client registration, configure its delegated API permissions and required tenant consent, and distribute the non-secret client ID, tenant and API audience to users. Users can share that approved registration; they do not need to create an app per installation. Choose the supported account/tenant configuration for the deployment. Do not distribute a client secret or reuse a confidential web application's credentials. Device-code sign-in requires public client flows to be enabled. Browser sign-in uses a local loopback redirect; this CLI leaves the port selection to Azure Identity, so configure http://localhost under the Mobile and desktop applications platform in the registration. See Microsoft's public-client setup guidance and desktop application configuration. A registration is ready for onboarding only after both the Entra configuration and API admission have been verified for that deployment.

workspace-delegation is for a provisioned workspace using managed identity and a workspace assertion; its optional client ID selects a user-assigned managed identity, not a desktop sign-in registration. execution-delegation uses an API-issued execution token bound to its service and org/project context. Obtain these configurations from the workspace or execution environment rather than setting a public-client ID for them.

Python SDK

from thinkplatform.sdk import ThinkPlatformClient
from thinkplatform.sdk.credentials import AzureCliCredential

client = ThinkPlatformClient(
    base_url="https://thinkplatform.example",
    audience="api://your-service",
    credential=AzureCliCredential(),
)

user = client.auth.whoami()
organizations = client.organizations.list()

The SDK also provides profile and environment based client factories, typed resource clients, and context helpers. Flow and Agent API operations are available without installing their execution engines.

Compatibility and security

The CLI and SDK are clients for an existing ThinkPlatform service; they do not include the service or grant access to it. The service remains responsible for authenticating requests and enforcing authorization. Cython wheels omit the original Python implementation files, but compiled code, names, documentation strings, and string constants can still be inspected. Do not treat the wheel format as a security boundary or put secrets in client code.

Metadata

Release files for ThinkPlatform-client 0.6.104

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

Built distributions (wheels)

Table of built distributions (wheels) for ThinkPlatform-client 0.6.104
File
thinkplatform_client-0.6.104-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
thinkplatform_client-0.6.104-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
thinkplatform_client-0.6.104-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
thinkplatform_client-0.6.104-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
thinkplatform_client-0.6.104-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
thinkplatform_client-0.6.104-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
thinkplatform_client-0.6.104-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
thinkplatform_client-0.6.104-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
thinkplatform_client-0.6.104-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 37.5 MB

Release files / thinkplatform_client-0.6.104-cp313-cp313-win_amd64.whl

Download URL thinkplatform_client-0.6.104-cp313-cp313-win_amd64.whl
Size 3.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
71956c84f00c6e23c9b64fc2ba6a4626c9149b08e9cd4b6514a793852ce47e4c
BLAKE2b-256 checksum
How to use checksums
a6f594447da8783229eb55a6d2dbc07afb20fa00d4c3e3b28c3f0df0a0972e7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL thinkplatform_client-0.6.104-cp313-cp313-manylinux_2_28_x86_64.whl
Size 5.1 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aa67af15a6c919464c763c8c61941614087eff6db7f1e3afdc90d6fa0f10d2c6
BLAKE2b-256 checksum
How to use checksums
a0d890ec031e5a0a9cb8e7ed7238e0f8bc03e77e0545ab40c0366b752664c3ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp313-cp313-macosx_11_0_arm64.whl

Download URL thinkplatform_client-0.6.104-cp313-cp313-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7ec07798e256d4a5805b361ecedd429e4a45592fec6def834268c2a71b799d75
BLAKE2b-256 checksum
How to use checksums
f1a3a2eddb51339803c6ec41105010fc01df44cb3497b78c105f90c2abc2e747
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp312-cp312-win_amd64.whl

Download URL thinkplatform_client-0.6.104-cp312-cp312-win_amd64.whl
Size 3.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2817bb703c3ff49325f5972cfb0c977358b88d3ea16b0d533c03ca96eee38ab1
BLAKE2b-256 checksum
How to use checksums
22c3780c2e5c9b535d878f4958487e0d42f4cc6f5daf91d24ecac65325add2d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL thinkplatform_client-0.6.104-cp312-cp312-manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
83ee03a14922def00cb51a451014d0ded2b2b42d2804de4930540aaabd97357f
BLAKE2b-256 checksum
How to use checksums
0501832753d61a384f1046b801c7cf3de8241b69a49342f8d515e9e9a52a9e77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp312-cp312-macosx_11_0_arm64.whl

Download URL thinkplatform_client-0.6.104-cp312-cp312-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ad8805437ca97ed0c168f3971fc5b76ba1dbaf228259996cd9e06f4680d423ea
BLAKE2b-256 checksum
How to use checksums
216c06305a4b29f550a38f48288849c2cd5e92b2412cbfdea0f3a11d21f38671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp311-cp311-win_amd64.whl

Download URL thinkplatform_client-0.6.104-cp311-cp311-win_amd64.whl
Size 4.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
1cebb127ac3b99030cdeb4fc861c1a4023161174860af32c391139da904e452b
BLAKE2b-256 checksum
How to use checksums
003fec85c45d629f8aa8ded85a0cc26cead371e1d8aff36391e06ed09e3e1591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL thinkplatform_client-0.6.104-cp311-cp311-manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
04073a3afbe347f89b2d1721dbf5a6ed72d6831e2bd8cf9b6dd9b5ac07ab2e8f
BLAKE2b-256 checksum
How to use checksums
84de69da9036f39b61b2e1b50a8eea304f8c4fbeabce07fef1924c0b01d47361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Release files / thinkplatform_client-0.6.104-cp311-cp311-macosx_11_0_arm64.whl

Download URL thinkplatform_client-0.6.104-cp311-cp311-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6ea547321022e87891224ded34a5e4d34702f5dc749ead1868e60c79b137994e
BLAKE2b-256 checksum
How to use checksums
022cf3db311fc666ff8ce6324b769406aabd299b2611956f570a44be947e648b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 27, 2026.

Transparency log

Security for ThinkPlatform-client 0.6.104

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 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for thinkplatform_client-0.6.104-cp313-cp313-win_amd64.whl

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 Oct 27, 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.

Release history Release notifications | RSS feed

This release

0.6.104 This release

9 release files Full provenance

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