Requirements
| Requirement | Details |
|---|---|
| Python | 3.12 or 3.13 |
| Operating System | macOS, Linux, or Windows |
| Package manager | pip, uv, or pipx, whichever you already use for Python CLI tools |
| Account | A 3XCode account (the free tier is enough to install and log in) |
Install
3xcode is published on PyPI as 3xcode-cli. Install it with whichever tool fits how you manage Python packages.
pip
The default choice if you don't have a strong preference. Installs into your active Python environment.
uv
Fast, modern package management. Use uv add for a project dependency, or uv tool install for a standalone CLI.
pipx
Installs 3xcode into its own isolated environment, recommended if you install a lot of Python CLI tools and want to avoid dependency conflicts.
# pip pip install 3xcode-cli # uv, as a project dependency uv add 3xcode-cli # uv, as a standalone CLI tool uv tool install 3xcode-cli # pipx, isolated from your other Python environments pipx install 3xcode-cli # verify the install 3xcode version
3xcode version prints the installed CLI version, your Python version, and your platform/architecture: a quick sanity check that the command is on your PATH before you go any further.
Update Notifications
3xcode checks PyPI in the background for a newer release and caches the result locally. The check never blocks a command: it runs on a background thread, and if it finds something newer than what you have installed, the next command you run prints a short, dim notice in an interactive terminal.
$ 3xcode status Update available: 0.2.1 -> 0.3.0. Run '3xcode update' to upgrade. Plan: Pro | Conversions this month: 42 / 200 ...
Non-blocking by design
The version lookup happens on a background thread and is cached; it never adds latency to a command, and a slow or unreachable network never fails the command you actually ran.
Silence it with an env var
Set THREEXCODE_DISABLE_UPDATE_CHECK to any truthy value to turn the notice off entirely, useful in CI logs or scripted environments where you don't want the extra line.
export THREEXCODE_DISABLE_UPDATE_CHECK=1 # or inline, for a single command THREEXCODE_DISABLE_UPDATE_CHECK=1 3xcode pyspark convert file.sql
Checking & Updating
3xcode update is notify-only by design: it never rewrites itself silently in the background. It detects which package manager you installed with (pip, pipx, or uv) and prints the exact upgrade command for that tool.
| Command | Flags | What it does |
|---|---|---|
3xcode update | none | Detects your install method, shows the current and latest version, and asks for confirmation before running the upgrade command for you. |
3xcode update --check | --check | Checks PyPI and reports the current vs. latest version only. Nothing is installed. |
3xcode update -y | -y, --yes | Skips the confirmation prompt and upgrades immediately, useful in scripts. |
# See if you're current, without installing anything 3xcode update --check # Upgrade interactively (detects pip / pipx / uv automatically) 3xcode update # Upgrade non-interactively, e.g. in a scheduled maintenance script 3xcode update -y
Version Pinning
For CI pipelines or a shared team environment, pin an exact version instead of always taking the latest, so a run behaves the same way every time until you deliberately bump it.
# pip: pin an exact version pip install 3xcode-cli==0.2.1 # uv: pin in a project's dependencies uv add 3xcode-cli==0.2.1 # Confirm what's actually installed 3xcode version
The background update check still runs against a pinned install: it will keep telling you a newer version exists. That's expected. Set THREEXCODE_DISABLE_UPDATE_CHECK in a pinned environment if you don't want the reminder.
Uninstalling
Uninstalling the CLI removes the 3xcode command itself; it does not touch any workspace you've created, since workspace files live in your project directories, not alongside the package.
Uninstall the CLI
pip uninstall 3xcode-cli, uv remove 3xcode-cli, or pipx uninstall 3xcode-cli, matching however you installed it.
Local data is separate
Stored credentials and BYOK keys live under ~/.3xcode/ (or your OS keychain). Workspaces live wherever you initialized them. Neither is removed by uninstalling the package.
pip uninstall 3xcode-cli # or uv tool uninstall 3xcode-cli # or pipx uninstall 3xcode-cli