# Installation (/installation)



## Requirements [#requirements]

| What     | Needed                                                                                    |
| -------- | ----------------------------------------------------------------------------------------- |
| Node.js  | 22 or later                                                                               |
| System   | macOS or Linux                                                                            |
| Account  | A Claude account on a subscription, such as Pro or Max; for Codex, a ChatGPT login        |
| Terminal | Any modern terminal; see [recommended terminals](#recommended-terminals) for the best fit |

## Install [#install]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash title="Terminal"
    npm i -g @jinion/cli
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash title="Terminal"
    pnpm add -g @jinion/cli
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash title="Terminal"
    yarn global add @jinion/cli
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash title="Terminal"
    bun add --global @jinion/cli
    ```
  </CodeBlockTab>
</CodeBlockTabs>

Check that it worked:

```sh title="Terminal"
jinion --version
```

It prints the version, such as `0.0.1`. If your shell says `command not found`, see
[Troubleshooting](/reference/troubleshooting#jinion-command-not-found).

## Sign in [#sign-in]

Start Jinion in any project:

```sh title="Terminal"
cd ~/code/my-project
jinion
```

If you have signed in to Claude on this machine before, the banner shows the account and you're done. If not, type
`/account`, go to the account that says "Not signed in" and press `enter`. Jinion opens the sign-in in your browser;
paste the code the browser shows.

When a login expires, sign it in again from the same panel; see [Sign in again](/models-and-accounts#sign-in-again).
To use more than one account, see [Switch models and accounts](/models-and-accounts#switch-accounts). To work with
Codex, see [Work with Codex](/models-and-accounts#work-with-codex).

## Try it without a model [#try-it-without-a-model]

`jinion --demo` plays a scripted session: questions, edits, test runs and background tasks, without sending anything
to a model. It is a quick way to look around.

```sh title="Terminal"
jinion --demo
```

Type `add rate limiting to the api` for the full tour, or `hello` for a short one.

## Update [#update]

Jinion updates itself. While it is open, it looks for a newer version a little after it starts and every four hours,
and installs it in the background into `~/.jinion/versions`, without `sudo` and without touching the version running.
The right of the status line then says `v0.3.520 ready · restart to update`, and the next `jinion` runs the new
version. Your conversations and settings stay.

To update by hand instead, install the latest version again:

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash title="Terminal"
    npm i -g @jinion/cli@latest
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash title="Terminal"
    pnpm add -g @jinion/cli@latest
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash title="Terminal"
    yarn global add @jinion/cli@latest
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash title="Terminal"
    bun add --global @jinion/cli@latest
    ```
  </CodeBlockTab>
</CodeBlockTabs>

To turn updating off, set `"autoUpdates": false` in `~/.jinion/settings.json`, or `JINION_DISABLE_AUTOUPDATER=1` in
your environment.

## Uninstall [#uninstall]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash title="Terminal"
    npm rm -g @jinion/cli
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash title="Terminal"
    pnpm remove -g @jinion/cli
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash title="Terminal"
    yarn global remove @jinion/cli
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash title="Terminal"
    bun remove --global @jinion/cli
    ```
  </CodeBlockTab>
</CodeBlockTabs>

Jinion's data stays in `~/.jinion`. Delete that folder to remove your conversations, memory and settings too. If you
added accounts with `/account`, [remove them](/models-and-accounts#remove-an-account) first, so they are signed out.
See [The \~/.jinion folder](/reference/jinion-folder).

## Recommended terminals [#recommended-terminals]

Jinion runs in any terminal that supports colors and the mouse. These also show desktop notifications and report
focus, so Jinion only notifies you when you're looking elsewhere:

| Terminal | Notifications |
| -------- | ------------- |
| Ghostty  | Yes           |
| iTerm2   | Yes           |
| kitty    | Yes           |
| WezTerm  | Yes           |
| Warp     | Yes           |
| foot     | Yes           |

Inside tmux or screen, and in other terminals, Jinion rings the bell instead. See
[Set up your terminal](/terminal-setup).
