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

# App shims

> Make common AI coding CLIs run through Rye automatically.

App shims make normal commands such as `claude` and `codex` run under Rye supervision without changing developer workflow.

## Install shims

```bash theme={null}
rye app wrap claude codex
```

The installer runs this automatically with `--skip-missing` unless you pass `--no-wrap-agents`.

Shims are written to:

```txt theme={null}
~/.rye/shims
```

Each shim calls Rye's internal shim entrypoint and passes the original arguments through to the real app.

## Put shims first on PATH

For zsh or bash:

```bash theme={null}
export PATH="$HOME/.rye/shims:$PATH"
```

For fish:

```fish theme={null}
fish_add_path -p "$HOME/.rye/shims"
```

Restart the shell after changing PATH. The shims directory must appear before the real `claude` or `codex` binary directories.

## Verify shims

```bash theme={null}
rye app list
rye app doctor
```

`rye app doctor` checks:

* Whether `~/.rye/shims` is on `PATH`.
* Whether it appears before the real app directories.
* Whether shim files exist.
* Whether the recorded underlying app binaries still exist.

## Remove shims

```bash theme={null}
rye app unwrap claude codex
```

This removes the shim files and clears the app shim configuration.

## Install without shims

If you do not want the installer to set up shims:

```bash theme={null}
curl -fsSL https://storage.googleapis.com/barn.rye.ai/install.sh | sh -s -- --no-wrap-agents
```

You can enable shims later:

```bash theme={null}
rye app wrap claude codex
```

## Choose the right mode

| Use                           | Command                 |
| ----------------------------- | ----------------------- |
| One supervised session        | `rye wrap claude`       |
| Every future shell invocation | `rye app wrap claude`   |
| Inspect shim setup            | `rye app doctor`        |
| Disable automatic wrapping    | `rye app unwrap claude` |
