DEV Community

Cover image for ヤークとは?
Akira
Akira

Posted on • Originally published at apidog.com

ヤークとは?

Yaakは、APIのテストと構築に使えるオープンソースのローカルファーストなデスクトップAPIクライアントです。REST、GraphQL、gRPC、WebSocket、Server-Sent Eventsをサポートし、リクエストはクラウドではなくローカルのプレーンテキストファイルとして保存されます。必須アカウントやクラウドロックインなしで、APIリクエストを自分のマシン上で管理したい開発者向けのツールです。

今すぐApidogを試す

「Yaak」と検索してモンタナ州の地図にたどり着いた場合、それは別物です。モンタナ州のYaakはカナダ国境近くの非法人地域です。この記事で扱うのは、yaak.appで入手できるAPIクライアントのYaakです。

この記事では、Yaakの成り立ち、ローカルファーストな保存方式、対応プロトコル、CLIによる自動化、ライセンス、向いているユースケースを実装目線で整理します。最後に、ApidogのようなデザインファーストのAPIプラットフォームとどう使い分けるかも説明します。

誕生秘話:Insomniaの生みの親が開発

Yaakを理解するうえで重要なのは、その背景です。Yaakは、オリジナルのInsomniaを開発したGregory Schier氏によるAPIクライアントです。InsomniaはKongに買収された後、時間をかけてより多機能でアカウント前提の方向へ移行しました。

Yaakは、その経験を踏まえて作られたローカルファーストなAPIクライアントです。MITライセンスのオープンソースとして公開されており、必須のクラウド同期やアカウント作成を前提にしていません。

設計方針は明確です。

  • リクエストをローカルに保存する
  • プレーンテキストファイルとして管理する
  • Gitで差分管理しやすくする
  • オフラインでも使える
  • 必要以上にプラットフォーム化しない

つまりYaakは、APIライフサイクル全体を管理する統合プラットフォームではなく、開発者が日常的に使う高速でプライベートなAPIクライアントです。

ローカルファーストとGitネイティブな保存方式

Yaakの最も大きな特徴は、データの保存場所です。ワークスペース、環境、リクエストはファイルシステム上に保存されます。ログインは必須ではなく、強制的なテレメトリーやクラウド同期もありません。

実務上は、次のような運用ができます。

# APIリクエスト定義を含むリポジトリを作成
git init

# Yaakのワークスペースファイルを追加
git add .

# APIリクエストの変更をレビュー可能にする
git commit -m "Add API request collection"
Enter fullscreen mode Exit fullscreen mode

プレーンテキストファイルとして保存されるため、APIリクエストの変更を通常のコード変更と同じように扱えます。

git diff
git status
git checkout -b update-auth-flow
Enter fullscreen mode Exit fullscreen mode

この方式のメリットは次のとおりです。

  • APIリクエストをリポジトリで管理できる
  • Pull Requestで変更内容をレビューできる
  • チームメンバーが同じリクエスト定義を共有できる
  • クラウド同期サービスに依存しない
  • オフライン環境でも作業できる

すでにGitを日常的に使っているチームなら、APIリクエストもアプリケーションコードと同じリポジトリに含めるだけで管理できます。同じ考え方のツールを比較する場合は、GitネイティブAPIクライアントの概要も参考になります。

YaakはTauri、Rust、Reactで構築されており、デスクトップアプリとして軽量に動作します。基本操作でリモートサーバーとの往復が不要なため、レスポンスの速さもローカルファースト設計の利点です。

Yaakがサポートするプロトコル

YaakはREST専用のクライアントではありません。現代のバックエンド開発でよく使われる複数のプロトコルに対応しています。

REST / HTTP

最も一般的な用途です。エンドポイント、メソッド、ヘッダー、クエリ、ボディを設定してリクエストを送信できます。

例:

GET /api/users HTTP/1.1
Host: example.com
Authorization: Bearer <token>
Accept: application/json
Enter fullscreen mode Exit fullscreen mode

POSTリクエストではJSONボディを管理できます。

{
  "name": "Taro",
  "email": "taro@example.com"
}
Enter fullscreen mode Exit fullscreen mode

GraphQL

GraphQL APIに対して、スキーマを意識したクエリ作成ができます。生のHTTPペイロードを毎回手書きするより、GraphQL向けの操作に集中できます。

例:

query GetUser($id: ID!) {
  user(id: $id) {
    id
    name
    email
  }
}
Enter fullscreen mode Exit fullscreen mode

gRPC

gRPCサービスを直接呼び出せます。マイクロサービスや社内プラットフォームの検証で役立ちます。

WebSocket

リアルタイム機能の検証に使えます。接続を開き、メッセージを送受信しながら挙動を確認できます。

Server-Sent Events

SSEにも対応しています。サーバーから単一のHTTP接続で継続的にイベントを受け取るAPIを確認できます。

認証については、OAuth 2.0、AWS Signature v4、JWT、カスタム認証設定など、実務で使われる一般的な方式をカバーしています。また、Postman、Insomnia、OpenAPI、Swagger、curlからのインポートもサポートしているため、既存のリクエスト資産を移行しやすい構成です。

REST APIクライアントとして比較する場合は、REST APIクライアントの一覧も参考になります。

既存のリクエストをYaakに移行する流れ

Yaakを試す場合、最初からすべて作り直す必要はありません。既存ツールからのインポートを使うのが現実的です。

代表的な移行元は次のとおりです。

  • Postman
  • Insomnia
  • OpenAPI
  • Swagger
  • curl

実務では、次のような順番で進めると安全です。

  1. 既存ツールからコレクションや仕様ファイルをエクスポートする
  2. Yaakにインポートする
  3. 環境変数や認証設定を確認する
  4. 主要なリクエストを送信してレスポンスを検証する
  5. ワークスペースファイルをGitにコミットする

curlから検証用リクエストを移す場合は、まず既存のコマンドを整理します。

curl -X POST https://api.example.com/users \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Taro","email":"taro@example.com"}'
Enter fullscreen mode Exit fullscreen mode

このようなリクエストをYaakに取り込み、チームで再利用できる形にしておくと、手元の一時的な検証コマンドを継続的に管理できます。

自動化とエージェントのための付属CLI

GUIクライアントだけでは、CIや自動化には不十分な場合があります。Yaakには、デスクトップアプリの外部で保存済みリクエストを実行するためのCLIが同梱されています。

CLIが役立つ主なケースは2つです。

1. CIでAPIチェックを実行する

保存済みリクエストをCIパイプラインから実行できれば、GUIを開かずにAPIの疎通確認や回帰チェックを行えます。

一般的なCIの流れは次のようになります。

name: API Checks

on:
  pull_request:

jobs:
  api-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      # Yaak CLIのセットアップ手順は公式ドキュメントに従う
      - name: Run saved API requests
        run: |
          yaak --help
Enter fullscreen mode Exit fullscreen mode

実際のコマンドやオプションは、使用しているYaakのバージョンと公式ドキュメントに合わせて確認してください。重要なのは、GUIで作成したリクエストを自動化の入口にできる点です。

2. AIアシスト開発でリクエストを実行する

YaakのCLIは、エージェント駆動のワークフローでも使いやすい方向に設計されています。コーディングエージェントが保存済みリクエストを参照し、必要に応じて実行できます。

Yaakは以前、ClaudeやCursorのようなアシスタントがリクエストを検査・送信できる実験的なMCP(Model Context Protocol)サーバープラグインを提供していました。その後、このMCPプラグインは非推奨になり、現在はCLIを使う方向が推奨されています。

古い記事で「YaakのMCPサーバー」に言及されている場合は、この変更を前提に読み替える必要があります。

価格とライセンス

Yaakは、個人利用と商用利用を分けたライセンスモデルを採用しています。

整理すると次のとおりです。

  • ソースコードはMITライセンス
  • コードは表示、変更、ビルド、実行できる
  • 個人利用は無料
  • 仕事や収益を生む活動での利用には有料ライセンスが必要
  • 初回起動時に30日間の無料トライアルがある
  • クレジットカードは不要
  • 個人向け、企業向けの有料プランがある
  • チーム向けにはシート単位のビジネス価格設定がある

価格は変更される可能性があるため、導入前にyaak.app/pricingで現在の価格を確認してください。

個人開発者、学生、オープンな検証用途では、無料でオフラインAPIクライアントとして試しやすいモデルです。一方、業務利用ではライセンス条件を確認してからチームに展開するのが安全です。

Yaakが向いている開発者

Yaakは、次のような開発者やチームに向いています。

  • APIクライアントをオフラインで使いたい
  • リクエスト送信のためにアカウントを作りたくない
  • APIリクエストをGitで管理したい
  • クラウド同期に依存したくない
  • リクエスト定義をプレーンテキストとして扱いたい
  • RESTだけでなくGraphQL、gRPC、WebSocket、SSEも検証したい
  • 軽量なデスクトップAPIクライアントが欲しい

特に、プライバシーやローカル管理を重視する開発者には相性が良いツールです。デフォルトではリクエストがローカルに留まり、必須アカウントや強制的なクラウド機能に依存しません。

Postmanの代替を探している場合は、Yaakを候補に入れる価値があります。比較検討する場合は、Postmanの代替最高のオフラインAPIクライアントも参考になります。

また、YaakはオリジナルのInsomniaやBrunoとも比較されやすいツールです。関連する比較として、Apidog対InsomniaApidog対Brunoも確認できます。

Yaakを使うときの実践的な運用例

Yaakをチームで使う場合は、APIリクエストを「個人の手元の設定」ではなく「リポジトリの一部」として扱うのが効果的です。

例として、次のような構成にできます。

my-service/
├── src/
├── docs/
├── api-requests/
│   ├── local/
│   ├── staging/
│   └── production/
└── README.md
Enter fullscreen mode Exit fullscreen mode

運用ルールはシンプルにできます。

  1. 新しいAPIを追加したら、対応するYaakリクエストも追加する
  2. 認証情報やシークレットはコミットしない
  3. 環境ごとの変数を分ける
  4. Pull RequestでAPIリクエストの差分もレビューする
  5. 主要エンドポイントはCLIで定期的に実行できるようにする

Git管理する場合、シークレットを含めないことが重要です。

# コミット前に差分を確認
git diff

# 誤ってトークンやAPIキーを含めていないか確認
git grep "Bearer"
git grep "api_key"
git grep "secret"
Enter fullscreen mode Exit fullscreen mode

このように運用すれば、Yaakは単なる手動テストツールではなく、API仕様や検証手順をチームで共有するための軽量な資産になります。

デザインファーストのプラットフォームとどう使い分けるか

Yaakは、軽量でローカルなGitネイティブAPIクライアントです。この役割に集中していることが強みです。一方で、フルAPIライフサイクルプラットフォームではありません。

次のようなニーズがある場合は、別の種類のツールが必要になります。

  • API設計をチームで進めたい
  • OpenAPIを視覚的に編集したい
  • モックサーバーをコードなしで立てたい
  • APIドキュメントを自動生成・公開したい
  • テストシナリオを管理したい
  • チームでリアルタイムに共同作業したい
  • CIで保存済みテストを実行したい

Apidogは、このようなAPIライフサイクルの契約面をカバーするオールインワンAPIプラットフォームです。ブランチサポート付きの視覚的なOpenAPIエディタでAPIを設計し、視覚的なアサーションで自動テストシナリオを実行し、コードなしで動的なモックサーバーを生成し、インタラクティブなドキュメントを公開できます。チームはリアルタイム同期を備えた共有ワークスペースで作業でき、Apidog CLIでCI上の保存済みテストシナリオも実行できます。

ApidogはWindows、Mac、Linux用のデスクトップアプリとWebアプリとして動作し、REST、GraphQL、gRPC、WebSocket、SOAP、Socket.IOをサポートしています。CMS、APIゲートウェイ、ロードジェネレーターではなく、API品質レイヤー、つまり契約の設計、テスト、モック、ドキュメント作成を担当するツールです。

使い分けは明確です。

  • 高速、オフライン、ファイルベース、クラウド依存なしのAPIクライアントが必要ならYaak
  • API設計、モック、テスト、ドキュメント、チームコラボレーションを同じ場所で管理したいならApidogのようなプラットフォーム

両者は競合だけでなく、同じ組織内で共存できます。たとえば、API契約やドキュメントはApidogで管理し、個々の開発者がローカルでの検証にYaakを使う、という運用も可能です。

よくある質問

Yaakは無料ですか?

はい、個人利用の場合は無料です。Yaakは個人利用に限り無料で、ソースコードはMITライセンスの下で公開されています。仕事や収益を生む活動で使う場合は、有料ライセンスが必要です。現在の価格はyaak.app/pricingで確認してください。

Yaakはオープンソースですか?

はい。YaakはMITライセンスの下でオープンソースです。ソースコードを表示、変更、ビルド、実行できます。ライセンス条件は、プレビルドされた商用バイナリに適用され、コード自体には適用されません。

Yaakを作成したのは誰ですか?

Gregory Schier氏です。彼は、Kongに買収される前のInsomniaを最初に開発した開発者です。Yaakは、彼が独自に構築した高速でプライベートなローカルファーストAPIクライアントです。

Yaakはどのプロトコルをサポートしていますか?

YaakはREST / HTTP、GraphQL、gRPC、WebSocket、Server-Sent Eventsをサポートしています。また、OAuth 2.0、AWS Signature v4、JWTなどの一般的な認証方式にも対応し、Postman、Insomnia、OpenAPI、Swagger、curlからのインポートも可能です。

Yaakはオフラインで動作しますか?

はい。Yaakはローカルファーストで、完全にオフラインで動作します。リクエストはファイルシステム上に保存され、必須アカウントや強制的なテレメトリーはありません。あなたが共有しない限り、リクエストはマシン外に送信されません。他の選択肢を探す場合は、無料APIクライアントのリストも参考になります。

Yaakはモンタナ州のYaakと関連がありますか?

いいえ。モンタナ州のYaakはカナダ国境近くの地名です。APIクライアントのYaakはyaak.appで提供されているソフトウェアです。名前が同じだけで、関連はありません。

Top comments (0)