# インストール

kstackはGitHubから最新のタグ付きリリースを取得し、スキルをエージェントのスキルディレクトリにレンダリングしてインストールします。同じ1行のブートストラップがClaude Codeと `PATH` 上のすべてのサポート対象エージェントを処理します。

## インストール

### グローバル

マシン上の任意のプロジェクトからスキルが利用できる「グローバル」モードでkstackをインストールするには、次を実行します。

```bash
curl -sS https://kstack.sh/install | bash
```

[kubetail-org/kstack](https://github.com/kubetail-org/kstack) の最新タグ付きリリースを `~/.config/kstack/upstream/` にクローンし、`PATH` で見つかったすべてのエージェントCLIのスキルディレクトリに各スキルをレンダリングします。スクリプト完了後、任意のエージェントセッションを開くとkstackスキルが利用可能になります。

```bash
$ claude
───────────────────────────────────
❯ /kstack-cluster-status
───────────────────────────────────
```

デフォルトでは、`install` スクリプトはスキル名に `kstack-*` Namespace プレフィックスを付加します。インストールスクリプト実行時に `--no-prefix` フラグを使用して無効化できます（下記参照）。

### ローカル

エージェントが単一のプロジェクトディレクトリから実行されている場合にのみスキルが利用できる「ローカル」モードでkstackをインストールするには、次を実行します。

```bash
cd myproject
curl -sS https://kstack.sh/install | bash -s -- --local
```

[kubetail-org/kstack](https://github.com/kubetail-org/kstack) の最新タグ付きリリースを `<project>/.kstack/upstream/` にクローンし、スキルを `<project>/.<agent>/skills/` にレンダリングします。スクリプト完了後、そのプロジェクトディレクトリからエージェントセッションを開くとkstackスキルが利用可能になります。

```bash
$ cd myproject && claude
───────────────────────────────────
❯ /kstack-cluster-status
───────────────────────────────────
```

デフォルトでは、`install` スクリプトはスキル名に `kstack-*` Namespace プレフィックスを付加します。インストールスクリプト実行時に `--no-prefix` フラグを使用して無効化できます（下記参照）。

### Namespaceプレフィックスの削除

`kstack-*` Namespace プレフィックスなしでスキルをインストールする場合は `--no-prefix` フラグを使用します。

```bash
curl -sS https://kstack.sh/install | bash -s -- --no-prefix
```

上記の例では、`/kstack-cluster-status` が `/cluster-status` に、`/kstack-events` が `/events` になります。このオプションはグローバルインストールとローカルインストールの両方で機能します。

### 特定のエージェントへのターゲット指定

デフォルトでは、ブートストラップは `PATH` で検出されるサポート対象エージェントすべてにインストールします。インストールを1つのエージェントに限定するには `--agent <name>` を渡します。

| エージェント     | フラグ                | グローバルインストールパス         |
|------------------|-----------------------|------------------------------------|
| Claude Code      | `--agent claude`      | `~/.claude/skills/`                |
| OpenAI Codex CLI | `--agent codex`       | `~/.codex/skills/`                 |
| OpenCode         | `--agent opencode`    | `~/.config/opencode/skills/`       |
| Cursor           | `--agent cursor`      | `~/.cursor/skills/`                |
| Factory Droid    | `--agent factory`     | `~/.factory/skills/`               |
| Slate            | `--agent slate`       | `~/.slate/skills/`                 |
| Kiro             | `--agent kiro`        | `~/.kiro/skills/`                  |
| Hermes           | `--agent hermes`      | `~/.hermes/skills/`                |

ローカルインストールはプロジェクトディレクトリ以下にこの構造を反映します（例：`<project>/.codex/skills/`）。エージェントごとの注意事項については[Claude以外のエージェントでのkstackの使用](/ja/guides/non-claude-agents/)を参照してください。

### ディレクトリ構造

ブートストラップスクリプトは次のディレクトリ構造を作成します。

```
<kstack-root>/
├── upstream/        # pinned checkout of kubetail-org/kstack at the release tag
├── bin/
│   ├── upgrade      # helper used by "upgrade kstack"
│   └── uninstall    # helper used below
├── cache/           # per-context cache (query results, log buffers)
└── state/           # per-context learned state (detected integrations, fingerprints)
```

さらに、検出されたエージェントごとに1つのディレクトリが追加されます。例：`~/.claude/skills/cluster-status/`、`~/.claude/skills/events/` など。

## アップグレード

kstackスキルを実行すると、エージェントは新しいkstackリリースが利用可能かどうかを静かに確認し、見つかった場合はレスポンスの先頭に1行の通知を表示します。**「upgrade kstack」** と言うだけでエージェントがアップグレードヘルパーを代わりに実行します。**「dismiss」** と言うと次のリリースまで通知を非表示にします。

ヘルパーを直接実行することもできます。

```bash
# Global install
~/.config/kstack/bin/upgrade

# Local install (from the project directory)
<project-root>/.kstack/bin/upgrade
```

ヘルパーは既存のアップストリームチェックアウトに最新タグを取得し、スキルをその場で再レンダリングします。アップグレードは冪等であり、いつでも安全に実行できます。`cache/` と `state/` ディレクトリは保持されるため、kstackはクラスターについてすでに学習した内容を保ちます。

curlブートストラップを再実行しても同じ結果が得られます。専用ヘルパーは単にインストール先を解決するためのネットワーク往復をスキップします。

## アンインストール

アンインストールするには、インストールにバンドルされている `uninstall` スクリプトを実行します。

```bash
# Global install
~/.config/kstack/bin/uninstall

# Local install (from the project directory)
<project-root>/.kstack/bin/uninstall
```

ヘルパーは削除前に確認を求めます。インストールルート（`~/.config/kstack` または `<project>/.kstack`）と、インストールされたすべてのエージェントにわたるkstack所有のすべてのスキルスロットをクリアします。同じエージェントディレクトリ内のユーザー作成スキルはそのまま残されます — アンインストーラーは自身が書き込んだスロットのみを削除します。

アンインストールしても、kstackがクラスター内に作成した可能性のあるリソース（デバッグコンテナ、Podクローン、ウォッチャー Job）には影響しません。これらを削除するには、スキルがまだ利用可能なうちに**アンインストール前に** [`/cleanup`](/ja/reference/skills/cleanup/) を実行してください。