kiro2cc - Kiro認証トークン管理とAnthropic APIプロキシツール

Tool

概要

kiro2ccは、Kiro認証に関わるトークン管理を支援するGo製コマンドラインツールです。ユーザーのホームディレクトリにあるAWS SSOのキャッシュファイル(.aws/sso/cache/kiro2cc-token.json)を読み込み、保存されたリフレッシュトークンを用いてアクセストークンを自動更新します。更新したトークンは環境変数に展開でき、他のツールやスクリプトで利用可能です。また、Anthropic社のClaude APIへのアクセスをHTTPサーバー経由で代理するプロキシ機能も搭載しており、APIキーの直接管理を簡素化します。GitHub Actionsを活用し、Windows、Linux、macOS向けに自動ビルドを行うため、クロスプラットフォームで利用できます。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 2
  • ウォッチャー数: 3
  • コミット数: 7
  • ファイル数: 6
  • メインの言語: Go

主な特徴

  • Kiro認証のトークンをAWS SSOキャッシュから読み込み、管理可能
  • リフレッシュトークンを使い自動でアクセストークンを更新
  • 更新トークンを環境変数としてエクスポートし他ツール連携を支援
  • Anthropic Claude APIのリクエストをHTTPサーバーでプロキシ可能
  • GitHub Actionsによる自動ビルド・テストでクロスプラットフォーム対応

技術的なポイント

kiro2ccは、Go言語のシンプルかつ高速な特性を活かして設計されたCLIツールです。主な技術的なポイントは以下の通りです。

まず、ユーザーのホームディレクトリ内にあるAWS SSOのキャッシュファイル(.aws/sso/cache/kiro2cc-token.json)をパースすることで、Kiro認証に必要なトークン情報を取得します。このキャッシュファイルにはリフレッシュトークンやアクセストークンがJSON形式で保存されており、Goの標準ライブラリのJSONパッケージを活用して安全かつ効率的に読み込みます。

次に、取得したリフレッシュトークンを使ってKiroの認証サーバーへリクエストを送り、アクセストークンを更新します。トークンの有効期限管理やエラーハンドリングも組み込まれており、切れたトークンを自動的に復旧できるように設計されています。これにより、ユーザーは手動でトークン更新を行う必要がなくなり、連続的な認証状態の維持が可能です。

さらに、更新したアクセストークンを環境変数としてエクスポートできる機能があり、これにより他のCLIツールやスクリプトからシームレスにKiro認証情報を利用可能です。例えば、シェルスクリプト内でトークンを環境変数として参照することで、API呼び出し時の認証処理を簡略化できます。

また、kiro2ccはAnthropic社のClaude APIへのアクセスをHTTPサーバーを介してプロキシする機能も備えています。これにより、APIキーの直接管理をクライアント側から隠蔽し、APIリクエストの中継やログ管理、アクセス制御などが容易になります。内部的にはGoの標準HTTPサーバーパッケージを利用し、軽量かつ高性能なプロキシサーバーを構築しています。

最後に、開発運用面ではGitHub Actionsを活用し、コードのpushやプルリクエスト時に自動テストを実行。さらにGitHub Release作成時には、Windows、Linux、macOS向けのバイナリを自動ビルドし、ReleaseページへアップロードするCI/CDパイプラインを実装しています。これにより、ユーザーは各OSに最適化されたバイナリを容易に入手でき、導入のハードルを下げています。

これらの技術的工夫により、kiro2ccはKiro認証のトークン管理とAnthropic API利用を効率化し、開発者や運用者の負担軽減に寄与しています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github/: GitHub Actionsのワークフローファイルを含むディレクトリ
  • .gitignore: Git管理対象外ファイルの指定
  • .vscode/: VSCode用の設定ファイル群
  • README.md: プロジェクトの説明ドキュメント
  • go.mod: Goモジュール管理ファイル
  • その他1ファイル(main.goなど、メインのソースコードファイル)

まとめ

Kiro認証トークン管理とAnthropic APIプロキシをシンプルに実現するGo製CLIツール。

リポジトリ情報: