Skip to main content
Version: 2026.08

Python Client 201: Your first System

Get a documented CAD model onto the Istari Digital Platform: a new System whose baseline branch holds a README, the model, and the Python that generated it. The same commands work for an AI coding agent.

Everything here runs from one commented script: you download it, it makes the API calls for you, and it prints the ids and a link to what it created. There is no Python to write yet — the point is to have a real System you can click through, and a worked example you can read, before you start writing code of your own.

Time: about five minutes — the script itself takes under a minute; the rest is installing the client and generating a Key.

When you want to make the calls yourself, Python Client 202 is the hands-on lesson: you write the script, register a spreadsheet, run two extractions, and compare what changed. For your own scripts, SDK setup covers installing the package and building a Client.

What the script does

One run, five steps:

  1. Connects using the credential named in istari.env — nothing is passed on the command line.
  2. Generates the demo files in your working directory: it writes make_bracket.py, runs it to produce bracket.stl, and composes 00-README.html. With --file it uploads your CAD instead of generating one.
  3. Uploads each file as a Resource of type model, so the web app renders it in place instead of offering a download.
  4. Creates a System and commits all three Resources onto its baseline branch, in this layout:
Where it landsWhat it is
00-README.html (root)Front door. Click it — it renders in place and links to the two files below.
10-Model/bracket.stlParametric mounting bracket (binary STL). The web app shows STL as an interactive 3D view.
10-Model/make_bracket.pyPure-Python generator for the STL.
  1. Prints JSON with system_id, each Resource id, and ui_link — the web-app URL to open.

The README is versioned on the branch with the model, and the folder is part of the commit. The README links use Resource ids, so they keep working when you upload a new revision. Change the folder with --folder.

Download

SHA-256: 780caa848a1965097c452103d888d4253c2b7036e1d814104386cd619e512f53 — compare with shasum -a 256 istari_quickstart.py (macOS/Linux) or Get-FileHash istari_quickstart.py (PowerShell), or read the file before running it.

Stable URL for agents and curl: /quickstart/istari_quickstart.py on this docs origin.

Credentials

Python 3.10 or newer (python3 --version), network access, and a credential. In an empty folder, create istari.env:

ISTARI_DIGITAL_API_URL=<API URL from Endpoints on Developer Settings>
IDENTITY_SERVICE_SECRET_FILE=/absolute/path/to/the-key-file-you-downloaded.json

In the Istari Digital web app, open avatar → Developer (example: https://demo.istari.app/settings?tab=developer-settings). Click Generate Key, then Download credentials — the key is shown once. Details: Developer Settings — Keys.

Personal Access Tokens are deprecated (July 2026). If your instance still issues one, use ISTARI_DIGITAL_REGISTRY_URL and ISTARI_DIGITAL_REGISTRY_AUTH_TOKEN instead.

Keep istari.env and the key file on disk. Do not put a key or token on the command line, in a prompt, or in a chat log.

Three commands

macOS / Linux

pip install "istari-digital-client>=13" cryptography PyJWT
curl -fsSL https://docs.istaridigital.com/quickstart/istari_quickstart.py -o istari_quickstart.py
python istari_quickstart.py --env istari.env

Faster: with uv

uv venv && source .venv/bin/activate && uv pip install "istari-digital-client>=13" cryptography PyJWT
curl -fsSL https://docs.istaridigital.com/quickstart/istari_quickstart.py -o istari_quickstart.py
python istari_quickstart.py --env istari.env

Windows (PowerShell)

py -m pip install "istari-digital-client>=13" cryptography PyJWT
Invoke-WebRequest https://docs.istaridigital.com/quickstart/istari_quickstart.py -OutFile istari_quickstart.py
py istari_quickstart.py --env istari.env

If you already downloaded the script from the link above, skip curl / Invoke-WebRequest. On a local or on-prem docs site, replace https://docs.istaridigital.com with that origin.

The last command prints one line per step, then the JSON. Open ui_link. python istari_quickstart.py --help lists every flag.

Your model, a revision, clean-up

python istari_quickstart.py --env istari.env --file path/to/your_part.stl --script path/to/make_your_part.py
python istari_quickstart.py --env istari.env --file wing.step
python istari_quickstart.py --env istari.env --system-name "Bracket study" --folder "10-Model"

Edit make_bracket.py, regenerate, and upload a new revision of the same model:

python make_bracket.py --length 100 --hole 8 --out bracket.stl
python istari_quickstart.py --env istari.env --revise <model_id from the JSON> --file bracket.stl --version-name v2

Undo a run (reversible in the web app):

python istari_quickstart.py --env istari.env --archive <system_id>

Upload things people should open from the tree as models (resource_type="model"). Folder paths: Folders in the Python client. Web-app URLs: Linking to the web app.

What the script uses

istari-digital-client 13.x: the Istari facade for create/upload (beta in the package) and Client for the folder commit. SDK setup is the Client / Configuration reference for your own code. Agent recipes: Advanced agentic use.

Where next