# Katasu CLI

Source: https://www.katasu.app/cli

Katasu CLIは、Slackの会話から生まれたタスクをターミナルから確認・更新するためのコマンドラインツールです。KatasuがSlackスレッドから抽出したタスクを、別の画面を開かずに扱えます。

人が操作するだけでなく、Claude CodeやCodexなどのコーディングエージェントから使うことも想定した、小さくスクリプトで扱いやすいJSON対応のインターフェースです。

## 動作要件

- Node.js 22.12以上

## インストール

npmでグローバルにインストールします。

```bash
npm install -g katasu
```

インストールせず、その都度実行することもできます。

```bash
npx katasu status
```

## 更新

グローバルにインストールしたCLIは、1日1回を上限として、バックグラウンドでnpm上の更新を確認します。更新確認によって実行中のコマンドが遅くなることはありません。利用可能な更新が見つかった場合は、その後の対話的な実行時にお知らせします。

CI、JSONまたはplain出力、一時実行（npx、pnpx、yarn dlx、pnpm dlx、bunx）、ローカルまたはソースからの実行では自動通知を行いません。

明示的に確認または更新するには、次のコマンドを実行します。

```bash
katasu update --check
katasu update
```

stable、beta、canaryの各インストールは、現在のリリースチャンネルを維持します。更新には、グローバルインストールで使用したnpm、pnpm、Yarn Classic、Bunと同じパッケージマネージャーを使い、確認した正確なバージョンをインストールします。判別できないインストールや一時実行は変更しません。

機械処理しやすい形式でバージョン情報を確認できます。

```bash
katasu update --check --json
```

自動確認を無効にする場合は、環境変数NO_UPDATE_NOTIFIER=1を設定するか、--no-update-notifierを指定してください。明示的なkatasu updateは引き続き利用できます。

## セットアップ

最初に一度ログインします。ブラウザが開き、Katasuアカウントで認証できます。

```bash
katasu login
```

SSH接続先やコンテナなど、ブラウザを利用できない環境ではデバイスログインを使います。別の端末で開くURLとコードが表示されます。

```bash
katasu login --no-browser
```

ログイン状態はこの端末に保存されます。KatasuはOSの認証情報ストアを優先して使用します。ヘッドレスコンテナなどで利用できない場合は、初回に確認したうえで、env-pathsが選択するOS標準の設定ディレクトリへユーザーだけが読める権限でトークンを保存します。LinuxではXDG_CONFIG_HOME/katasu/credentials.json、XDG_CONFIG_HOMEが未設定の場合は~/.config/katasu/credentials.jsonです。

以降のコマンドに追加のフラグや環境変数は必要ありません。ログアウトするには次を実行します。

```bash
katasu logout
```

本番のKatasuサービスへ接続する場合、ほかの設定は必要ありません。ログイン時に接続先が自動設定されます。

## 最初に使うコマンド

ログインしているユーザーを確認します。

```bash
katasu whoami
```

閲覧できるタスクを一覧表示します。

```bash
katasu tasks list
```

読み取りコマンドへ--jsonを付けると、パイプラインやエージェントで扱えるJSONを出力します。

```bash
katasu tasks list --status todo --json | jq -r '.tasks[].title'
```

タスクを移動したり、自分の名前でSlackスレッドへ返信したりできます。

```bash
katasu task move <taskId> in_progress
katasu task reply <taskId> "対応しました"
```

タスクIDには完全なID、または一意に特定できる先頭部分を指定できます。

タスクは1件ずつ作成できるほか、JSONファイルからまとめて作成できます。作成すると、タスクごとに1件のbotメッセージがSlackチャンネルへ投稿されます。

```bash
katasu task create "Write the report" --channel '#pj-katasu' --due 2026-08-07
katasu task create --file tasks.json --channel '#pj-katasu'
```

既存タスクを別のタスクの子として紐付けられます。親子関係は1階層のみです。親タスクを別のタスクの子にしたり、子タスクにさらに子を追加したりすることはできません。

```bash
katasu task link <childTaskId> --parent <parentTaskId>
katasu task children <parentTaskId>
katasu task unlink <childTaskId>
```

## ほかのコマンドを調べる

すべてのコマンド、フラグ、出力形式、終了コードは--helpで確認できます。インストール済みのバージョンと常に一致するコマンドリファレンスです。

```bash
katasu --help
katasu task move --help
```

## AIエージェントから使う

上記のコマンドは、CodexやClaude CodeなどのAIエージェント内でも同じように使えます。--jsonは、エージェントやスクリプトでの利用に適した出力です。

安全のため、AIエージェントによる操作を検出した場合、katasu loginはログインを開始しません。エージェントが利用者の名前で意図せず認証を始めることを防ぎます。

最初のkatasu loginは利用者自身で実行し、その認証情報をエージェントから再利用してください。CIやヘッドレスな自動処理では、ログインの代わりにアクセストークンを直接指定できます。

```bash
KATASU_ACCESS_TOKEN=... katasu tasks list --json
```

## 補足

- katasu task get <taskId>は常にタスクのメタデータを表示します。Slackスレッド本文の取得には、Katasuで本人のSlackアカウントが連携されている必要があります。未連携でもコマンドは成功し、連携方法をご案内します。
- ローカル開発など本番以外のサーバーへ接続する場合は、--server-urlまたはKATASU_SERVER_URLを指定します。環境変数と設定項目の一覧はkatasu --helpで確認できます。
- ログイン情報はサーバーごとに保存されます。トークンと接続設定はサーバーURLをキーにするため、ローカルサーバーへのログインで本番のセッションが上書きされることはありません。それぞれのサーバーへ一度ログインすれば、以降は--server-urlだけで切り替えられます。