オープンソース · Apache-2.0

No Postman, Just GetCat!

Rust + GPUI で作られた、ネイティブなクロスプラットフォーム HTTP API クライアント

GPU レンダリング · 軽量 · アカウント不要 · データはすべて手元に · No Electron, No Tauri, No WebView

macOS · Windows · Linux

他のプラットフォームをお探しですか?下にすべての配布物があります。

左でリクエストを組み立て、右で JSON レスポンスを読む。
左でリクエストを組み立て、右で JSON レスポンスを読む。

邪魔をしないために作られています

ここに書いてあるのは、GetCat が今できることだけです。ロードマップを機能として並べてはいません。

ネイティブで軽快

GPU でレンダリングされるネイティブウィンドウです。Electron でも Tauri でも WebView でもありません。macOS・Linux・Windows で同じ画面、ダウンロードは約 16 MB。

大きなレスポンスでも滑らか

ストリーミング受信、進捗表示、いつでもキャンセル。メインスレッドが O(n) の処理をしないため、数百 MB の JSON でもウィンドウが固まりません。

一通りのリクエスト構築

7 つのメソッド、説明欄つきの Path / Query / ヘッダーの各テーブル、raw JSON からストリーミングのファイルアップロードまでのボディ形式。

データはあなたのもの

履歴を残さず、レスポンスも保存せず、どこにもアップロードしません。保存したリクエストや設定は、手で編集でき Git でも管理できる整形済み JSON ファイルです。

書いたそばから保存

各タブの下書きは自動でディスクに書かれ、再起動後に復元されます。タブの順序、分割方向、テーマの設定も記憶します。

システムに追従

テーマと言語は OS に追従し、固定もできます。タイトルバーは自前描画なので 3 つのプラットフォームで見た目が揃います。すべてのコントロールにアクセシブル名があり、スクリーンリーダーで使えます。

アプリの表示言語は English と简体中文 です。

リクエストを組み立てて、コードごと持ち出す

リクエストを形づくるのに必要なものが一通りと、GetCat が実際に送信する内容とぴったり一致するワンクリック書き出し。

7 つのメソッド

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD
  • OPTIONS

URL のどこかに {name} と書けば、自動的に Path パラメータの表に現れます。

ボディとパラメータ表

ボディなし
GET・HEAD・OPTIONS 用。
raw JSON / Text / XML
tree-sitter によるシンタックスハイライトと、ワンクリック整形。
x-www-form-urlencoded
キーと値のペア。エンコードは任せられます。
form-data
テキスト欄とファイル欄を行ごとに切り替え。ファイルは長さ既知のストリーミングで送られ、メモリには載りません。
binary
ファイル 1 つをそのままボディに。同じくストリーミングです。
Path パラメータ
URL 内の {name} プレースホルダから自動生成されます。
Query
URL に付加されます。行ごとに有効・無効を切り替えられます。
ヘッダー
さらに、行ごとにオフにできるグローバルな既定ヘッダーがあります。

コードを生成

cURL、cURL (Windows)、Python requests をワンクリックでコピー。生成器はリクエスト送信と同じ組み立てロジックを使うので、コピーしたコードは GetCat が送るはずだったリクエストそのものです。

cURL
curl -X POST 'https://api.anthropic.com/v1/messages' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'anthropic-version: 2023-06-01' \
  -H 'Content-Type: application/json' \
  -d '{"model":"claude-opus-5","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'
Python (requests)
import requests

url = "https://api.anthropic.com/v1/messages"

payload = "{\"model\":\"claude-opus-5\",\"max_tokens\":1024,\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}"
headers = {
    "x-api-key": "YOUR_API_KEY",
    "anthropic-version": "2023-06-01",
    "Content-Type": "application/json"
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

TLS・リダイレクト・タイムアウトの指定は意図的に出力しません。あれらは GetCat の設定であって、リクエストそのものではないからです。

ウィンドウを固まらせないレスポンス表示

レスポンスの見せ方はサイズによって変わります。メインスレッドが O(n) の処理を求められることは決してありません。

サイズによる 3 段階

段階条件表示方法
ハイライト付きエディタ5 MB 以下かつ 200,000 行以下完全なシンタックスハイライト、行番号、折りたたみ、レスポンス内検索。
行単位の仮想化64 MB 以下プレーンテキストを行ごとに描画し、画面に見える範囲だけレイアウトします。
ディスクへ退避64 MB 超一時ファイルに書き出し、先頭 1 MiB と要約だけをプレビュー。ワンクリックで保存も外部アプリで開くこともできます。

受信中 受信済みバイト数と全体サイズを約 33 ms ごとに更新して表示し、どの時点でもキャンセルできます。

証明書チェック

Body とヘッダーの隣に「証明書」タブがあります。GetCat は相手側のリーフ証明書をオフラインで解析し、読み取った内容を表示します。

  • サブジェクト
  • 発行者
  • 有効期間の開始
  • 有効期限
  • サブジェクト代替名 (SAN)
  • シリアル番号
  • 署名アルゴリズム
  • SHA-256 フィンガープリント

次の 4 つを警告します

  • 有効期限切れ
  • まだ有効ではない — システム時計を確認してください
  • ホスト名が証明書と一致しない
  • 自己署名で信頼チェーンがない

TLS 検証は既定でオフです。自己署名証明書のローカル環境に手間なくつなげるようにするためです。リクエストはそのまま送信され、GetCat は証明書をオフラインで解析して上の 4 つを警告します。設定で検証を有効にすると、不正な証明書ではハンドシェイクが中断されます。

組み込みの AI API テンプレート — OpenAI と Anthropic のマルチモーダル本文の書き方比較

ワンクリックで URL・認証ヘッダー・本文が入ったタブができます。本当の価値は下のマルチモーダルの形にあります。3 つの API は互いに互換性がありません。

6 つのテンプレート

OpenAI Chat Completions、OpenAI Responses、Anthropic Messages。それぞれテキストのみと画像つきの 2 種類。

送信前に YOUR_API_KEY を置き換えてください。GetCat には変数や環境の仕組みがありません。

同じ画像リクエストの 3 通りの書き方

OpenAI · Chat Completions

POST https://api.openai.com/v1/chat/completions

JSON
{
  "model": "gpt-5.6",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "What is in this image?" },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://example.com/cat.jpg",
            "detail": "auto"
          }
        }
      ]
    }
  ],
  "max_completion_tokens": 1024
}

画像ブロックは image_url で、image_url は url と detail を持つオブジェクトです。トークン上限のフィールドは max_tokens ではなく max_completion_tokens。

OpenAI · Responses

POST https://api.openai.com/v1/responses

JSON
{
  "model": "gpt-5.6",
  "input": [
    {
      "role": "user",
      "content": [
        { "type": "input_text", "text": "What is in this image?" },
        {
          "type": "input_image",
          "image_url": "https://example.com/cat.jpg"
        }
      ]
    }
  ],
  "max_output_tokens": 1024
}

Responses ではコンテンツブロックが input_text と input_image に改名され、image_url はオブジェクトではなく文字列そのものになります。上限は max_output_tokens。

Anthropic · Messages

POST https://api.anthropic.com/v1/messages

JSON
{
  "model": "claude-opus-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/cat.jpg"
          }
        },
        { "type": "text", "text": "What is in this image?" }
      ]
    }
  ]
}

Anthropic は image と source オブジェクトを使います。max_tokens は必須で、公式の推奨どおり画像ブロックをテキストブロックより前に置きます。

ワークスペースは、ただのファイル

データベースもクラウドもアカウントもありません。GetCat が覚えていることは、すべて開いて編集してコミットできる JSON ファイルです。

書き込まれるもの

workspace.json
タブの順序、サイドバーの状態、分割方向、テーマ設定。
requests/<ulid>.json
保存したリクエスト 1 件につき 1 ファイル。
drafts/<tab-id>.json
タブ 1 つにつき下書き 1 つ。再起動時に復元されます。
settings.json
アプリケーション設定。

置き場所

プラットフォームディレクトリ
macOS~/Library/Application Support/GetCat/
Linux$XDG_DATA_HOME/getcat/
Windows%APPDATA%\GetCat\data\

キーボードショートカット

操作macOSWindows / Linux
送信⌘ EnterCtrl Enter
新しいタブ⌘ TCtrl T
タブを閉じる⌘ WCtrl W
サイドバーの開閉⌘ BCtrl B
リクエストを保存⌘ SCtrl S
レスポンス内を検索⌘ FCtrl F
設定⌘ ,Ctrl ,

書き込みはアトミックです。一時ファイルを作って置き換えるので、クラッシュしても半端なファイルは残りません。解析に失敗したファイルは .corrupt-<時刻> に改名されスキップされます。Authorization などのヘッダーは平文で保存されます。Postman や Insomnia のローカル DB と同じ扱いで、Unix では 0600 のパーミッションです。

GetCat が意図的にやらないこと

ダウンロードする前に分かるように、そして他のツールから類推して誤解しないように、ここに挙げておきます。

リクエスト履歴 · 環境変数と変数展開 · スクリプトとテストアサーション · 専用の認証パネル · Cookie 管理 · フォルダツリー · GraphQL・WebSocket・gRPC · チーム同期とクラウドアカウント

ダウンロード

すべてのビルドは GitHub Releases にあります。リンクは常に最新版を指します。

インストール

macOS

署名・公証済みです。「アプリケーション」にドラッグしてください。

Windows

MSI はユーザー単位でインストールされ、管理者権限は不要、スタートメニューから起動できます。ポータブル版 exe はどこに置いても動き、レジストリには何も書きません。

Linux

展開してバイナリを PATH に置いてください。.desktop ファイルを 1 つ足せばランチャーにも並びます。コマンドは下記のとおりです。

Linux でのインストール
tar -xzf GetCat-linux-x64.tar.gz
install -Dm755 getcat ~/.local/bin/getcat
mkdir -p ~/.local/share/applications
cat > ~/.local/share/applications/getcat.desktop <<EOF
[Desktop Entry]
Type=Application
Name=GetCat
Exec=$HOME/.local/bin/getcat
Categories=Development;
EOF

Windows 版はまだコード署名されていないため、初回起動時に SmartScreen が止めます。「詳細情報」→「実行」を選んでください。

アップデート

GetCat は起動 5 秒後に GitHub Releases を 1 回だけ確認し、自分から何かをダウンロードすることはありません。更新を選ぶと、SHA-256 と minisign 署名の両方で検証してからインストールします。

すべてのバージョンとリリースノート

動作環境

GetCat は GPU で描画するので、CPU よりグラフィックス周りが重要です。

macOS

Apple Silicon と Intel の両方に対応。ディスクイメージは署名・公証済みです。

Windows

Windows 10 バージョン 1803(2018 年 4 月更新)以降、または Windows 11。描画は Direct3D 11 の feature level 10.1 で、おおよそ 2010 年以降の GPU なら動きます。DirectX 12 は不要です。

Linux

2022 年以降の主要なデスクトップディストリビューション:Ubuntu 22.04+、Debian 12+、Fedora 36+、Linux Mint 21+、openSUSE Leap 15.6+、および Arch などのローリングリリース。下限は glibc 2.35 なので、Ubuntu 20.04、Debian 11、RHEL 9 系では動きません。

Linux:画面が真っ黒なら Vulkan の問題です

画面は Vulkan で描画されます。ウィンドウが真っ黒なら、まず vulkaninfo --summary でドライバを確認し、GPU に応じたパッケージを入れてください。

GPUパッケージ
Mesamesa-vulkan-drivers
Intelvulkan-intel
AMDvulkan-radeon
NVIDIAnvidia-driver

nouveau は Vulkan に対応していないため、NVIDIA では専有ドライバが必要です。仮想マシン内では lavapipe のソフトウェアレンダリングにフォールバックします。動きますが低速です。

よくある質問

Postman と何が違いますか?

GetCat は絞り込んだサブセットです。アカウント、クラウド同期、コレクション、環境変数、スクリプトはいずれもありません。代わりに、すぐ起動して、すべてのバイトが手元に残り、非常に大きなレスポンスでも詰まらない 16 MB のネイティブアプリが手に入ります。チーム連携やテストスイートが必要なら、Postman や Insomnia のほうが適しています。

なぜ Electron や Tauri ではないのですか?

GetCat は Rust で書かれ、Zed エディタと同じ UI フレームワークである GPUI の上に構築されています。ウィンドウはブラウザエンジンではなく GPU が直接描画します。それがダウンロードサイズを約 16 MB に保ち、数百 MB が流れ込んでいる最中でもレスポンス欄を操作できる理由です。通信は Tokio ランタイムで動き、結果はチャネル経由で UI スレッドに戻るため、メインスレッドが O(n) の処理をすることはありません。

リクエストや API キーはどこに保存されますか?アップロードされますか?

アップロードされません。テレメトリも、アカウントも、同期もありません。保存されたリクエスト・下書き・設定は、プラットフォームのデータディレクトリにある整形済み JSON ファイルで、手で編集しても Git に入れても構いません。Authorization などのヘッダー値は平文で保存されます。Postman や Insomnia のローカル DB と同じ扱いで、Unix では 0600 のパーミッションです。

なぜ TLS 検証が既定でオフなのですか?

開発中によくある「自己署名証明書のローカル環境を叩く」がそのまま動くようにするためです。リクエストは通常どおり送信され、GetCat は相手の証明書をオフラインで解析して、期限切れ・まだ有効でない・ホスト名不一致・信頼チェーンのない自己署名を警告します。設定で検証を有効にすれば厳格な動作に戻り、不正な証明書ではハンドシェイクが中断されます。

環境変数、テストアサーション、チーム連携には対応していますか?

いずれも未対応で、現在の路線では予定もありません。変数展開、リクエスト前後のスクリプト、アサーションの実行、Cookie の保管、フォルダツリー、共有ワークスペースはありません。繰り返しのリクエストはテンプレートでカバーし、それ以外はアプリを小さく予測可能に保つために意図的に省いています。

Linux でウィンドウが真っ黒です。どうすれば?

画面は Vulkan で描画されるので、真っ黒な場合はほぼ Vulkan ドライバの不足です。vulkaninfo --summary で確認し、GPU に応じて mesa-vulkan-drivers、vulkan-intel、vulkan-radeon のいずれかを入れてください。NVIDIA では専有ドライバが必要です(nouveau は Vulkan 非対応)。仮想マシンでは lavapipe のソフトウェアレンダリングにフォールバックします。

GraphQL・WebSocket・gRPC には対応していますか?

対応していません。GetCat が話すのは HTTP だけです。GraphQL のクエリを JSON ボディとして POST することはもちろんできますが、スキーマのイントロスペクションもサブスクリプションも、プロトコル専用の画面もありません。

価格とライセンスは?

無料でオープンソース、Apache-2.0 です。有料プランもアカウントも、登録が必要なものは何もありません。ソースコード、issue、すべてのビルドが GitHub にあります。