---
title: "Install the Tedix CLI"
description: "Install, verify, update, and roll back the Tedix CLI, a small program installed on your machine."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.tedix.dev/llms.txt
> Use this file to discover all available pages before exploring further.



# Install the Tedix CLI

> **Availability:** The standalone CLI is a public beta. It can be installed
> without source access, but organization operations still require membership
> in an existing or invited Tedix organization. The OSS product source and
> stable self-hosted releases remain private. See
> [Release status](./release-status.md).

The Tedix CLI is a small program installed on your machine. It covers Home
conversations, Code Mode, Work Items, skills, automations, flows, engine
observation, and tedi operations. The standalone
binary includes Bun and its runtime dependencies. You do not need access to the
Tedix source repository or a local Bun installation for gateway operations.
The optional `tedix setup` and `tedix dev` local-product commands instead need
Bun and Node.js 22+ for Wrangler. Run `tedix setup` from any directory to use
an existing checkout or acquire the matching source release (GitHub access is
required while the repository is private). `tedix setup --yes` selects offline
mode; `tedix dev` resumes the saved installation from anywhere. Local startup
does not require Tedix login. See [Getting started](./getting-started.md)
for offline and own-account Workers AI evaluation, and [Skills, automations, flows,
and runs](./skills-flows-workflows.md) for the execution model.

## Install

macOS and Linux users can install the latest public release with:

```bash
curl -fsSL https://downloads.tedix.dev/install.sh | sh
```

The installer detects the operating system and architecture, downloads the
matching immutable release, verifies it against `SHA256SUMS`, and installs
`tedix` into `~/.local/bin` by default. Downloads retry bounded transient
failures, checksum tools run with a neutral locale, and the installer checks
that the destination is writable before downloading the binary.

`~/.local/bin` is not on the default macOS `PATH`, so a new shell cannot find
`tedix` until that directory is added. The installer detects this, appends the
directory to your shell profile (`~/.zshrc`, `~/.bash_profile`, or
`~/.config/fish/config.fish`), and prints exactly what it changed. Open a new
terminal afterwards, or run the export line it prints to use `tedix` in the
current one.

Set `TEDIX_NO_MODIFY_PATH=1` to keep the installer out of your shell profile. It
then only prints the line to add yourself:

```bash
export PATH="$HOME/.local/bin:$PATH"
```

Verify the installation in a new terminal:

```bash
command -v tedix
tedix --version
tedix auth status
```

To install into a directory that is already on `PATH`:

```bash
curl -fsSL https://downloads.tedix.dev/install.sh |
  TEDIX_INSTALL_DIR=/usr/local/bin sh
```

## Supported platforms

| Platform    | Architecture            | Public artifact | Installer support |
| ----------- | ----------------------- | --------------- | ----------------- |
| macOS       | Apple silicon (`arm64`) | yes             | yes               |
| macOS       | Intel (`x64`)           | yes             | yes               |
| Linux glibc | `arm64`                 | yes             | yes               |
| Linux glibc | `x64`                   | yes             | yes               |
| Windows     | `x64`                   | experimental    | manual download   |

The beta artifacts are checksum-verified but not yet code-signed or notarized.
Windows remains experimental. Homebrew, Alpine/musl, and baseline pre-AVX2 x64
installations are not currently supported.

## Install an exact version

Pinning a version from `latest.json` or a release manifest makes installs and
rollbacks reproducible:

```bash
curl -fsSL https://downloads.tedix.dev/install.sh |
  TEDIX_CLI_VERSION="VERSION_FROM_MANIFEST" sh
```

The CLI does not silently update itself. For an installer-managed binary, use
the explicit lifecycle commands:

```bash
tedix update --check
tedix update
tedix update "VERSION_FROM_MANIFEST" --force
tedix rollback
```

Checks never change the installation. `tedix update --check <version>` verifies
that an exact release and its platform artifact are published, then compares it
with the current version. Updates fetch fresh bounded metadata, stream the
artifact with a strict size limit, verify its size and SHA-256 hash, smoke-test
it, and atomically replace the active macOS/Linux standalone executable under
an exclusive install lock. One verified previous binary is retained for
`tedix rollback`.

Source-checkout invocations may check releases but refuse update and rollback
mutations, so running `bun packages/cli/src/index.ts update` cannot overwrite an
unrelated standalone installation. Use the installer for the initial install;
use `tedix update <version> --force` for an intentional exact downgrade.

## Verify a release

Release metadata is public:

```text
https://downloads.tedix.dev/latest.json
https://downloads.tedix.dev/releases/<version>/manifest.json
https://downloads.tedix.dev/releases/<version>/SHA256SUMS
```

`manifest.json` records the exact source commit, version, artifact names, sizes,
SHA-256 hashes, and immutable download URLs. `latest.json` is the only mutable
release pointer and is updated after the immutable version files are uploaded.
The release workflow also creates GitHub build-provenance attestations for the
standalone binaries. These attest build provenance; they do not replace Apple
notarization, Authenticode, or the public SHA-256 verification path.

## Sign in

Run the login command. The authenticated Tedix OS launcher opens in your browser
and asks which organization this terminal should use:

```bash
tedix login
tedix -w ORG_SLUG ask "Confirm Home is reachable."
```

After selection, the browser returns only the organization slug through a
one-time local callback. The CLI resolves the organization's public MCP
gateway and opens OAuth against that resource. It does not require a
platform-wide operator login or a platform-administrator role. In automation
or another non-interactive environment, pass the known slug directly:
`tedix login ORG_SLUG`.

OAuth credentials are stored per workspace under `~/.tedix`. The binary never
contains a Tedix account credential.

## Find a command

Start with the short command overview:

```bash
tedix --help
```

Then ask for only the command you need:

```bash
tedix code --help
tedix work --help
```

For a complete command index, use `tedix help --map`. The longer reference is
still available with `tedix help --all`. Scripts and coding agents can read the
same help without parsing terminal text:

```bash
tedix help --json
tedix help --json code
tedix help exit-codes
```

Use the exit-code reference when a script needs to distinguish a usage or
connection error from declined work or an operation that is still settling.

Help describes the CLI itself. The tools available inside your organization
can change, so discover those live through Code Mode instead:

```bash
tedix code 'async () => await discover.search({ query: "calendar", limit: 3 })'
```

## Uninstall

Tedix CLI is a standalone file. Removing it does not delete your Tedix
organization, cloud conversations, or locally saved sign-ins.

### Remove the command

If you used the default installer location, remove only the Tedix binary:

```bash
rm -f ~/.local/bin/tedix
hash -r
```

If you set `TEDIX_INSTALL_DIR` when installing, replace `~/.local/bin` with
that directory. Do not delete `~/.local/bin` itself or remove it from your
`PATH`: other tools may use it too.

The updater may retain one rollback binary. If you installed to the default
location and do not need to roll back, you can remove it too:

```bash
rm -f ~/.local/bin/tedix.previous
```

### Remove local sign-ins and history (optional)

By default, uninstalling leaves your saved workspace logins, conversation
metadata, command history, and update cache in `~/.tedix`. This makes a later
reinstall convenient.

To remove saved local OAuth credentials but keep the other local data, sign out
first:

```bash
tedix logout --all
```

To erase all Tedix CLI data from this computer after signing out, remove its
configuration directory:

```bash
rm -rf ~/.tedix
```

This is permanent local cleanup. It does not delete cloud conversations, runs,
or organization data. To install the CLI again later, follow [Install](#install).

## Troubleshooting

- `tedix: command not found`: open a new terminal first, because the
  installer's `PATH` change only applies to shells started after it. If it
  persists, add the install directory yourself with
  `export PATH="$HOME/.local/bin:$PATH"`.
- `install directory is not writable`: if the default `~/.local/bin` was
  previously created with `sudo`, run the exact ownership command printed by
  the installer. Otherwise, pass a writable directory to `sh` with
  `TEDIX_INSTALL_DIR`.
- A checkout alias or function shadows the installed CLI: run `type -a tedix`,
  remove the shadowing `tedix` definition, and give checkout execution a
  distinct name such as `tedix-dev`.
- Checksum failure: stop. Do not execute the downloaded file; retry later or
  install an exact known version.
- Unsupported platform: use a supported macOS/Linux artifact or run the CLI
  from a source checkout with Bun.
- Login failure: confirm the organization slug with your administrator, then
  run `tedix login ORG_SLUG` again. `tedix auth status` shows whether a saved
  workspace is already selected without printing its credential.

Source: https://docs.tedix.dev/cli/index.mdx
