概要
Freebuff は無料のプログラミングアシスタントで、専用の AI エージェントと主要なモデルをターミナル、デスクトップ、ブラウザ、GitHub リポジトリに提供します。並列エージェント、ファイル検索、コード編集、実行チェックをサポートし、サブスクリプションや API キーは不要です。プロジェクトは TypeScript のモノレポを採用し、CLI、デスクトップ、Web、クラウド、チャットなど複数の製品形態を提供しています。
README プレビュー
# Freebuff\n\nEnglish | [简体中文](./README.zh-CN.md)\n\n**Five free AI products for coding, building, and research.** No subscription, credits, or API key required.\n\n[Freebuff](https://freebuff.com) brings specialized agents and a choice of leading models to your terminal, desktop, browser, and GitHub repositories. Text ads support access to the included models.\n\n## Choose your Freebuff\n\n| Product | What it does | Get started |\n| -------------------- | ----------------------------------- | --------------------------------------------------------------------- |\n| **Freebuff Desktop** | Run parallel agents locally | [Download for macOS, Windows, or Linux](https://freebuff.com/desktop) |\n| **Freebuff CLI** | Code from your terminal | [Install the CLI](https://freebuff.com/cli) |\n| **Freebuff Web** | Build and ship full-stack apps | [Build an app](https://freebuff.com/web) |\n| **Freebuff Cloud** | Run agents on any GitHub repository | [Connect a repository](https://freebuff.com/cloud) |\n| **Freebuff Chat** | Research and think with AI | [Start a chat](https://freebuff.com/chat) |\n\n## Quick start\n\nRun Freebuff in any project from your terminal:\n\n```bash\nnpm install -g freebuff\ncd ~/my-project\nfreebuff\n```\n\nThen describe what you want. Freebuff finds the relevant files, makes changes, and runs the checks that matter for your project.\n\n## Models\n\nFreebuff includes a curated model catalog. The regular picker currently offers:\n\n| Model | Access | Best for |\n| --------------------------- | ----------------------- | ------------------------------------------------------------------ |\n| **GPT-5.6 Luna** |
FAQ (3)
トラブル対応Linux上のFreebuff CLIで「terminal command broker protocol response was missing」エラーを修正するにはどうすればよいですか?
このエラーは通常、ターミナルコマンドブローカープロセスがプロトコルレスポンスを書き込む前に失敗したことを意味します。根本的な原因は、ENOSPC(ディスクフル)またはEACCES(パーミッション拒否)であることがよくあります。ブローカーのstderr修正を含む最新リリースへFreebuff CLIをアップグレードしてから、コマンドを再実行し、実際の書き込みエラーが表示されるようにしてください。df -h $HOME /tmpで空き容量を確認し、ディスクまたは一時ファイルシステムがいっぱいの場合は容量を確保してください。Freebuffのconfig/cacheディレクトリが書き込み可能であることを確認してください。たとえば、ls -ld $HOME/.config/freebuff $HOME/.cache/freebuff /tmpや、touch $HOME/.cache/freebuff/.write-test && rm $HOME/.cache/freebuff/.write-testのような書き込みテストで確認できます。必要に応じてchown -R $USER:$USER $HOME/.config/freebuff $HOME/.cache/freebuffで所有権/パーミッションを修正してから、Freebuffを再起動してください。
トラブル対応SDKでOpenRouterのクレジットが二重計上または過大計上される問題を修正するにはどうすればよいですか?
SDK は usage.cost と cost_details.upstream_inference_cost を誤って加算しています。OpenRouter のトップレベルの usage.cost にはすでにアップストリームの推論コストが含まれているため、これらを加算すると通常の約2倍のコストが請求されてしまいます。sdk/src/impl/llm.ts 内の3つすべてのクレジット計算パス(ストリーミングの reportCost、非ストリームの generateText、および Responses)で、合計を Math.max(...) に置き換えてください。
costOverrideDollars = Math.max(
openrouterUsage.cost ?? 0,
openrouterUsage.costDetails?.upstreamInferenceCost ?? 0,
)
これにより BYOK リクエストも正しく処理されます。BYOK は cost: 0 を報告し、実際の支出は upstreamInferenceCost に記録されるためです。パッチ適用後に SDK をリビルドするか、SDK がインストール済みの依存関係として使用されている場合は patch-package を使用してください。この issue は stale として自動的にクローズされたため、インストールされているバージョンに修正が含まれていることを確認してください。
トラブル対応/compact はなぜ以前のチャット履歴をすべて消去し、空の要約だけを残すのですか?
これは、コンパクションが空のモデル応答を受け入れた場合、または出自情報(provenance)ではなくメッセージ内容でサマリーを識別した場合に発生します。packages/agent-runtime/src/run-agent-step.ts で、fullResponse.trim() が空でない場合にのみ履歴を置き換えるように修正してください。それ以外の場合は agentState.messageHistory を保持し、空の completion をログに記録して、リトライでサマリーを再生成させてください。compact-history.ts と agents/context-pruner.ts では、生成されたサマリーに CONVERSATION_SUMMARY マーカー/メタデータフィールドを付与し、isConversationSummary がその出自情報を必須とするようにしてください。レガシーフォールバックは、完全なエンベロープ(開始タグと終了タグの <conversation_summary>、サマリーヘッダー、および <historical_memory>)を含むメッセージに限定してください。また、set-messages.ts でメッセージを検証し、ユーザーが引用した <conversation_summary> テキストがアクティブなサマリーにならないようにしてください。別の resume(再開)の問題により、run-state.json が読み取れない場合にも同様の記憶喪失が発生する可能性があります。空の sessionState を持つ RunState にフォールバックするのではなく、そのケースを適切に処理してください。一時的な回避策: 空のモデル応答の後に /compact に依存しないようにし、通常のユーザーメッセージに <conversation_summary> マーカーを貼り付けないでください。