従量課金モデルが「バイブコーディング」を阻害する理由と、ローカル AI コーディングエージェントの自作方法
The Register は、主要モデル開発者が導入する使用量課金やレート制限の強化により、ローカル LLM を活用した「バイブコーディング」がコスト増に直面している現状を指摘し、その回避策として自作のローカル AI コーディングエージェントへの移行を提案している。
キーポイント
使用量課金モデルによるコスト圧迫
モデル開発者がより積極的なレート制限や価格引き上げ、サブスクリプションから使用量ベースの課金へ移行する中、趣味プロジェクト(バイブコーディング)のコストが急増している。
ローカル LLM によるコスト削減
クラウド API に依存せず、ローカル環境で動作する大規模言語モデル(LLM)を利用することで、トークン制限や課金問題を回避し、開発を継続可能にする戦略が示唆されている。
自作ローカル AI エージェントの実装
既存のツールに頼らず、開発者が自らの環境でカスタマイズされたローカル AI コーディングエージェントを構築・運用することで、柔軟性とコスト効率を両立させる手法が紹介されている。
影響分析・編集コメントを表示
影響分析
この記事は、AI コスト構造の変化が個人開発者のワークフローに直接的な影響を与えることを示しており、クラウド依存からの脱却というトレンドを加速させる可能性があります。ローカル LLM の活用や自作エージェントの構築は、単なるコスト削減策ではなく、開発の自律性を確保するための重要な戦略的転換点として捉えられるべきです。
編集コメント
クラウドサービスのコスト増はもはや他人事ではなく、開発者が自社のインフラを再考する契機となっています。この記事は、技術的な解決策の提示だけでなく、開発スタイルそのものの見直しを促す重要な視点を提供しています。
モデル開発者がより厳しいレート制限を課したり、価格を引き上げたり、あるいはサブスクリプションから使用量ベースの料金体系へ移行したりする中、その「雰囲気」で楽しむ趣味のプロジェクトは、一気に高価なものになりつつあります。幸いにも、コスト削減のための選択肢が全くないわけではありません。
ここ数週間で、Anthropic は最も手頃なプランから Claude Code を削除することを検討している様子がうかがえ、Microsoft は水を探るようなテストもせず、GitHub Copilot を純粋な使用量ベースモデルへと移行しました。この一連の騒動が私たちに考えさせました。果たして Anthropic や OpenAI の最上位モデルを本当に必要としているのか、それともより小さなローカルモデルで済ませることはできないのか?もちろん、処理速度は遅くなり、能力も劣り、作業に少しイライラすることもあるでしょう。しかし、無料の価格には勝てません……ただし、すでに必要なハードウェアをお持ちの場合に限りますが。
ちょうど今、アリババが Qwen3.6-27B をリリースしました。クラウドおよび電子商取引の巨人である同社は、このモデルを「フラッグシップ級のコーディング能力」を備えつつ、32 GB の M シリーズ Mac や 24 GB の GPU でも動作可能なサイズに収めたと豪語しています。
何が変わったのか
これはローカルコードアシスタントを取り上げた初めての試みではありません。以前は、Continue の VS Code 拡張機能を使用して、コード補完や生成などのタスクに取り組む方法を探索しました。
当時、モデルやソフトウェアスタックは非常に未熟であり、有用なツールではあったものの、必ずしも大規模なフロンティアモデルと競合できるほど十分ではありませんでした。それ以来、モデルアーキテクチャやエージェントハネスは劇的に改善されました。
「推論」機能により、小規模モデルでもより長く「思考」することでそのサイズを補うことが可能になり、エキスパート混合(Mixture-of-Experts)モデルを用いれば、対話型体験のために毎秒テラバイト単位のメモリ帯域幅が必要なくなります。また、関数呼び出しやツール呼び出しの能力が大幅に向上したことで、これらのモデルは実際にコードベース、シェル環境、そしてウェブと相互作用できるようになりました。
すべての雰囲気、レート制限なし
このハンズオンでは、コンピューター上でコーディングを行うために Qwen3.6-27B などのローカルモデルをどのようにデプロイおよび設定するか、またそれらと併用できるいくつかのエージェントフレームワークについて探求します。
必要なもの:
- 中規模の LLM(大規模言語モデル)を実行可能なマシン。Nvidia、AMD、または Intel の GPU を少なくとも 24 GB の VRAM(ビデオメモリ)を備えたものを推奨します。メモリが少し不足している場合でも、システムメモリと GPU メモリをプールする方法についても議論します。最新の Mx-Max シリーズ Mac ユーザーには、少なくとも 32 GB のユニファイドメモリを備えたモデルを推奨します。
- このガイドでは Llama.cpp を使用してモデルを実行しますが、LM Studio、Ollama、または MLX を使用する場合はセットアッププロセスが同様です。システムへの Llama.cpp のインストールに問題がある場合は、包括的なセットアップガイドをこちらで見つけることができます。
注:以前の M シリーズ Mac では、エージェント型コーディングに必要な長いコンテキスト長を処理するのが難しい場合があります。Apple のハードウェアアクセラレータをより効果的に活用できる oMLX などの推論エンジンを使用すれば、より良い結果が得られる可能性がありますが、その効果には個人差があります。
モデルの起動
現在、LLM(大規模言語モデル)をローカルで実行するのは非常に簡単なプロセスです。お気に入りの推論エンジンをインストールし、モデルをダウンロードして、API を介してアプリに接続するだけです。
ただし、コードアシスタントの場合、いくつかのパラメータを適切に調整する必要があります。そうしないと、モデルがゴミや壊れたコードを生成してしまう恐れがあります。一部のモデルは異なるアプリケーションで正常に機能させるために特定のハイパーパラメータを必要とし、Qwen3.6-27B も例外ではありません。
Vibe コーディング(直感的なコーディング)に Qwen3.6-27B を使用する際、アリババは以下のパラメータの設定を推奨しています:
- temperature=0.6
- top_p=0.95
- top_k=20
- min_p=0.0
- presence_penalty=0.0
- repetition_penalty=1.0
また、モデルのコンテキストウィンドウ(文脈窓)は、メモリに収まる限り最大限に設定する必要があります。
ご存じない方のために説明すると、モデルのコンテキストウィンドウとは、特定の要求に対してモデルが追跡できるトークンの数を定義するものです。
数千行ものコードを含む大規模なコードベースを扱う場合、この数はすぐに膨らんでしまいます。さらに、多くのエージェントフレームワークで使用されるシステムプロンプトも非常に大きくなるため、コンテキストウィンドウは可能な限り高く設定したいところです。
Qwen3.6-27B は 262,144 トークンのコンテキストウィンドウをサポートしていますが、ハイエンドの Mac やワークステーション用 GPU をお持ちでない限り、少なくとも 16 ビット精度ではそのすべてを活用するための十分なメモリをお持ちではない可能性が高いです。
良いニュースは、モデルの状態を追跡するキー・バリューキャッシュ(key-value caches)を 16 ビットで保存する必要がないということです。パフォーマンスや品質の低下があまりない範囲であれば、より低い精度でも十分に対応できます。コンテキストウィンドウを最大化するために、キーとバリューのペアを 8 ビットに圧縮します。
最後に、プレフィックスキャッシュ(prefix caching)が有効になっていることを確認する必要があります。システムプロンプトやコードベースのように、プロンプトの大きな部分が繰り返し再処理されるワークロードにおいては、新しいトークンのみが処理されるようにすることで推論速度を向上させることができます。Llama.cpp の最新ビルドではこれがデフォルトで有効になっているはずですが、念のためこれらのフラグを明示的に呼び出します。
以上の準備が整ったところで、24GB の Nvidia RTX 3090 TI を使用する場合の起動コマンドをご紹介します。AMD または Intel の GPU をお使いの場合や、Mac で Llama.cpp を実行している場合でも、同じコードコマンドで問題なく動作するはずです。メモリ容量の多いマシンでこのコマンドを実行する場合は、コンテキストウィンドウを 131,072 または 262,144 に引き上げることをお勧めします。
llama-server \
--hf-repo unsloth/Qwen3.6-27B-GGUF:Q4_K_M \
--ctx-size 65536 \
-ngl 999 \
--flash-attn on \
--cache-prompt \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--temp 0.6 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.0 \
--presence-penalty 0.0 \
--repeat-penalty 1.0 \
--port 8080
もし Llama.cpp を実行して別のマシンからアクセスする予定であれば、コマンドに --host 0.0.0.0 を追加する必要があります。これによりローカルエリアネットワーク(LAN)上からアクセス可能になります。Llama.cpp が VPC(仮想プライベートクラウド)上で動作している場合、セキュリティのためにこのフラグを指定する前にファイアウォールルールを設定しておく必要があります。
エージェントフレームワークの選択
これでモデルが稼働したので、次はそれをコーディング用のエージェントハネスに接続する必要があります。単独ではモデルもコードを生成できますが、アクティブな開発環境がないと、その実装やテスト、デバッグを行う手段がありません。他の AI ベンチャーが苦戦する中で「バイブコーディング」が成功した理由の一つは、コードが検証可能である点にあります。実行できるかコンパイルされるか、あるいはそうでないかのどちらかだからです。
シンプルに保つため、ここでは 3 つの主要なオプションを見ていきましょう:Claude Code、Pi Coding Agent、そして Cline です。
ご想像とは異なり、Anthropic のモデルを使うために Claude Code を使用する必要はありません - クリックして拡大
Claude Code は通常通りインストールしてください。Anthropic のワンライナーは こちら で確認できます。
次に、Claude Code に対して、Claude アカウントや Anthropic の API サービスではなく、ローカルマシン上で実行されているモデルを使用したいことを伝える必要があります。これは、Claude Code を起動する前にいくつかのシェル変数を設定することで実現されます。
export ANTHROPIC_BASE_URL="http://localhost:8001"
export ANTHROPIC_API_KEY='none'
claude
これらのコマンドは、新しいセッションから Claude を起動するたびに実行する必要があります。
これで Claude を起動すると、直接ローカルモデルに接続されます。Claude Code 自体は通常通り機能し続けます。
Pi Coding Agent
ご自身のローカルモデルを使用したいだけでなく、オープンソースのハーンセスも希望される場合もあるでしょう。Claude Code が好きであれば、おそらく Pi Coding Agent も気に入るはずです。Claude Code と同様に、Pi Coding Agent も使用するモデルを選ばないのが特徴です。
Pi Coding Agent の主な魅力の一つは、その軽量さです。長い入力シーケンスは、低スペックまたは古い GPU やアクセラレーターにとって非常に負荷がかかります。Claude Code と Cline はどちらも、能力の低いハードウェアを極端に遅くさせるようなシステムプロンプトを持っています。それと比較すると、Pi Coding Agent のデフォルトのシステムプロンプトは短く、特にプロンプトキャッシングを有効にすれば、処理を素早く保つのに十分です。
しかし、その速度は、他のコーディングエージェントで見られる多くのガードレールや安全機能の犠牲の上に成り立っています。これはおそらく仮想マシン、コンテナ、あるいはラズベリーパイ上で起動する必要があるでしょう。
Claude と同様、Pi Coding Agent は、お使いのシステムに適した one liner を使用してインストールできます。その後、必要なことは、エージェントハッチにモデルの場所を指示するための少しの JSON だけです。
これまで追いかけてきた方ならお分かりの通り、セットアップは非常にシンプルです。お好みのテキストエディタを使用して、以下のファイルを作成してください:
Windows:
edit ~/.pi/agent/models.json
Linux / Mac:
nano ~/.pi/agent/models.json
次に、以下のテンプレートを貼り付けてください。API キーを設定している場合は、「no_API_key_required」をあなたのキーに置き換えてください。残りの部分は、使用しているモデルとポートによって異なります。また、Llama.cpp で設定した値に合わせて「contextWindowSize」も調整する必要があります。
"providers": {
"llama.cpp": {
"baseUrl": "http://localhost:8080/v1",
"api": "openai-completions",
"apiKey": "none",
"models": [
{ "id": "unsloth/Qwen3.6-27B-GGUF:Q4_K_M" }
]
}
}
}
これで準備が整ったので、作業ディレクトリに移動し、Pi Coding Agent を起動して、次の趣味プロジェクトの「vibe coding」に取り掛かりましょう。
pi --model unsloth/Qwen3.6-27B-GGUF:Q4_K_M
Cline
Claude Code は VS Code を含む人気のある統合開発環境(IDE)と直接統合されますが、このルートを選ぶ場合は、もう一つのオープンソースアプリである Cline もチェックすることをお勧めします。
Cline のインストールは、VS Code または対応する IDE の拡張機能マネージャーで Cline を見つけ、ライブラリに追加するだけで簡単です。
Cline は VS Code を含む多くの人気のある IDE で拡張機能として利用可能です - クリックして拡大
次に、Cline を Llama.cpp サーバーに向け、温度やコンテキストサイズなどのいくつかのハイパーパラメータを調整します:
- ベース URL: http://localhost:8080/v1
- モデル ID: unsloth/Qwen3.6-27B-GGUF:Q4_K_M
- コンテキストウィンドウサイズ:65536(または Llama.cpp で設定した値)
- 温度:0.6
アプリをインストールしたら、Cline を Llama.cpp サーバーに向けるだけです。 - クリックして拡大
次に、最大コンテキストサイズとモデルの温度を設定します。 - クリックして拡大
設定が完了したら、チャットインターフェースを通じて Cline と対話できるようになります。生成されるファイルや編集内容は、VS Code 上で生成されたまま表示されます。
Cline のより有用な機能の一つは、純粋な計画モードとアクションモードを切り替える能力です。Claude が質問をアクション呼び出しとして解釈してしまい、実際には問題の検討を行いたいのにイライラした経験がある方にとっては、これは大きな助けになります。
Cline と対話する際の変更点は、VS Code のエディターに表示されます。 - クリックして拡大
ローカルモデルはついに十分なのか?
では、Qwen3.6-27B は Opus 4.7 や GPT-5.5 を置き換えることができるのでしょうか?結論から言えば、残念ながらそうはいきません。おそらくご推察の通り、パラメータ数が 270 億(27B)の大規模言語モデル(LLM: Large Language Model)が、パラメータ数が数兆単位の最先端モデルを代替することはできません。
しかし、最近のローカルモデルでどれほどまでできるかについては、驚かれるかもしれません。私たちのテストでは、Qwen3.6-27B はインタラクティブな太陽系 Web アプリをワンショット(1 回の試行)で完成させ、既存のコードベース内のバグを正確に特定して修正することもできました。
Cline と連携して使用した際、Qwen3.6-27B はインタラクティブな太陽系 Web アプリをワンショットで実現しました。 - クリックして拡大
確かにこれらは非常に単純なプロジェクトです。モデルの性能をより正確に把握するために、私は同僚のトーマス・クラバーン(Thomas Claburn)に任せて、彼の Claude Code に関する最近の経験と比較してもらいました。
彼は次のように述べています:
「ローカルモデルを使い始めたのはつい最近ですが、トビアスの体験は私のものと似ています。私は pi コーディングエージェントを使用しており、モデルサーバーには OMLX を採用しています。トークン処理速度は大幅に遅いものの、少なくとも小規模なスクリプトについては、今のところ Qwen に満足しています。
例えば、画像を指定した幅にリサイズする Python スクリプトの作成をモデルに依頼しましたが、数回の手動承認を経て約 5 分で完了しました。
Claude Code が Qwen モデルの成果に対して行った評価は、私が予想していたよりもポジティブでした——『全体として:堅牢で本番環境でも使用可能なスクリプト』。
Claude はいくつかの改善点を提案しましたが、それらのいずれも必須ではありません。例えば:
get_save_format は非 PNG ファイルをすべて JPEG として扱います。ディレクトリ内の .webp ファイルは SUPPORTED_EXTENSIONS によってフィルタリングされますが、このセットが将来的に拡大した場合、JPEG へのフォールスルーが静かなる誤動作を引き起こす可能性があります。明示的な elif 文またはルックアップ辞書を使用する方が安全です。
コード生成に要する時間を考慮すると、ローカルエージェントは焦点を絞った個別的なコード変更、スクリプト、最小限の Web プロジェクトに対して使用するのが適切だと考えられます。
より大規模なプロジェクトでは、修正が必要な要素が多すぎる可能性があります。ただし、多くの点はローカルモデルが利用可能なスキルやツールに依存します。ローカルモデルが実用的かどうかを判断する最良の方法は実際に試してみることです。あなたの目的に合うかもしれません。メモリ負荷の高いハードウェアを用意し、必ずデータのバックアップを取ってください。
これらのエージェントは本当に安全なのか?
OpenClaw として知られるセキュリティの悪夢をめぐる騒ぎを考えると、これは良い質問です。幸いなことに、ここで議論したフレームワークの多くは自律性においてかなり制限されています。デフォルトでは、Claude Code と Cline は、コード変更の承認やシェルコマンドの実行に人間が関与する(human-in-the-loop)ことを前提としています。
⟦CODE_0⟧
コマンドのホワイトリストを設定しているか、またはエージェントが何を目指しているかを理解する時間を取らずにエンターキーを連打してスパムしていない限り、影響範囲は管理可能なはずです。"すべきである"と強調するのは、プログラミング言語や一般的な CLI コマンドに関する基本的な理解があれば、この点において大きな助けとなるからです。もしモデルが作業ディレクトリ外のファイルやフォルダに対して rm -rf を実行することを要求し始めたら、何かが間違っている可能性があります。
これは Pi Coding Agent には当てはまりません。同エージェントは初期設定で YOLO モードで動作するため、アクセスできるあらゆるものを自由に読み書きする権限を与えられています。仮想マシンや Raspberry Pi といった専用開発環境であれば、このリスクが許容される場合もありますが、そうでない場合は、適切なサンドボックス内でエージェントを実行することを検討すべきです。
コンテナ化はこれを実現するための簡単な手段です。Docker コンテナを簡単に起動し、作業ディレクトリをマウントするのは比較的簡単です。Docker 自体は複雑な要素を含んでいますが、以下の run コマンドはサンドボックス環境の合理的な出発点となるはずです。お好みの OS への Docker のインストール手順については こちら をご覧ください。
docker run -it --name vibe_container -v working_dir:/working_dir ubuntu /bin/bash
これにより、新しい Ubuntu Docker コンテナが起動し、作業ディレクトリがコンテナにマウントされます。発生するすべての変更は、そのフォルダ内またはコンテナ内に限定されます。
エージェントのサンドボックス構築に関する包括的なガイドをご覧になりたい場合は、コメント欄でお知らせください。®
原文を表示
With model devs pushing more aggressive rate limits, raising prices, or even abandoning subscriptions for usage-based pricing, that vibe-coded hobby project is about to get a whole lot more expensive. Fortunately, you're not without cost-saving options.
Over the past few weeks, we've seen Anthropic toy with dropping Claude Code from its most affordable plans while Microsoft has skipped testing the waters and moved GitHub Copilot to a purely usage-based model. The whole debacle got us thinking. Do we even need Anthropic or OpenAI's top models, or can we get away with a smaller local model? Sure, it might be slower, less capable, and a little more frustrating to work with, but you can't beat the price of free... Well, assuming you've already got the hardware that is.
It just so happens that Alibaba recently dropped Qwen3.6-27B, which the cloud and e-commerce giant boasts packs "flagship coding power" into a package small enough to run on a 32 GB M-series Mac or 24 GB GPU.
What's changed
This isn't the first time we've looked at local code assistants. Previously we explored using Continue's VS Code extension for tasks such as code completion and generation.
At the time, the models and software stack were quite immature, making them useful tools, but not necessarily good enough to compete with larger frontier models. Since then, model architectures and agent harnesses have improved dramatically.
"Reasoning" capabilities allow small models to make up for their size by "thinking" for longer, mixture-of-experts models mean you don’t need terabytes a second of memory bandwidth for an interactive experience, and vastly improved function and tool calling capabilities mean that these models can actually interact with code bases, shell environments, and the web.
All vibes, no rate limits
In this hands on, we'll be looking at how to deploy and configure local models like Qwen3.6-27B, for coding on your computer, and explore some of the agent frameworks you can use with them.
What you'll need:
- A machine capable of running medium-sized LLMs. We recommend an Nvidia, AMD or Intel GPU with at least 24 GB of VRAM. If you're a little short on memory, we'll also discuss how to pool your system and GPU memory. For those on newer Mx-Max series Macs, we recommend at least 32 GB of unified memory.
- For this guide, we'll be using Llama.cpp to run our model, but if you prefer to use LM Studio, Ollama, or MLX, the set up process is similar. If you need help getting Llama.cpp installed on your system, you can find our comprehensive setup guide here.
Note: Older M-series Macs may struggle with the large context lengths required for agentic coding. You may have better luck with an inference engine like oMLX, which can take better advantage of Apple's hardware accelerators, but your mileage may vary.
Spinning up the model
Running LLMs locally is a dead simple process these days. Install your favorite inference engine. Download the model, and connect your app via the API.
However, for code assistants in particular, there are a couple of parameters we need to dial in, otherwise the model is apt to churn out garbage and broken code. Some models require specific hyper-parameters to function properly in different applications, and Qwen3.6-27B is no exception.
When using Qwen3.6-27B for vibe coding, Alibaba recommends setting the following parameters:
- temperature=0.6
- top_p=0.95
- top_k=20
- min_p=0.0
- presence_penalty=0.0
- repetition_penalty=1.0
We also need to set the model's context window as large as we can fit in memory.
If you're not familiar, a model's context window defines how many tokens the model can keep track of for any given request.
When working with large code bases containing thousands of lines of code, this adds up quickly. What's more, the system prompts used by many agent frameworks can be quite large, so we want to set our context window as high as possible.
Qwen3.6-27B supports a 262,144 token context window, but unless you have a high-end Mac or a workstation GPU, you probably don't have enough memory to take advantage of all of that, at least not at 16-bit precision.
The good news is that we don't need to store the key-value caches, which track the model state, at 16-bits. We can get away with lower precisions without too much performance and quality degradation. To maximize our context window, we'll be compressing the key value pairs to 8-bits.
Finally, we'll want to make sure prefix caching is turned on. For workloads where large sections of the prompt are going to be reprocessed over and over again, like a system prompt or code base, this will speed up inference by ensuring only new tokens are processed. In newer builds of Llama.cpp this should be enabled by default, but we'll call those flags just in case.
With all that out of the way, here's the launch command we're using for a 24GB Nvidia RTX 3090 TI, but the same code command should work just fine if you're using an AMD or Intel GPU or are running Llama.cpp on a Mac. If you're running this on a machine with more memory, try bumping up the context window to 131,072 or 262,144.
llama-server \
--hf-repo unsloth/Qwen3.6-27B-GGUF:Q4_K_M \
--ctx-size 65536 \
-ngl 999 \
--flash-attn on \
--cache-prompt \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--temp 0.6 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.0 \
--presence-penalty 0.0 \
--repeat-penalty 1.0 \
--port 8080
If you're planning on running Llama.cpp and accessing it on another machine, you'll also want to add --host 0.0.0.0 to the command, which will expose it to your local area network. If Llama.cpp is running in a VPC, you'll want to configure your firewall rules before passing this flag for the sake of security.
Choosing an agent framework
Now that our model is up and running, we need to connect it to an agentic coding harness. On their own, models can generate code, but they have no way to implement, test, or debug it without an active development environment. Part of what has helped vibe coding take off where other AI ventures have struggled, is that code is verifiable. It either runs or compiles, or it doesn't.
To keep things simple we'll be looking at three popular options: Claude Code, Pi Coding Agent, and Cline.
Despite what you might think, you don't actually have to use Claude Code with Anthropic's models - Click to enlarge
We'll kick things off with Claude Code. Despite what you might think, you don't have to use Claude Code with Anthropic's models. The framework works just fine with local models, assuming you've got enough resources to run them.
Install Claude Code as you normally would. You can find Anthropic's one-liner here.
Next, we'll need to tell Claude Code we want to use the model running locally on our machine rather than a Claude account or Anthropic's API services. This is done by setting a few shell variables before launching Claude Code.
export ANTHROPIC_BASE_URL="http://localhost:8001"
export ANTHROPIC_API_KEY='none'
claude
These will need to be run each time you launch Claude from a new session.
Now when you start Claude, it'll connect directly to your local model. Claude Code itself continues to function as it normally would.
Pi Coding Agent
Let's say you not only want to use your own local models, but would prefer an open source harness as well. If you like Claude Code, you'll probably like the Pi Coding Agent. And just like Claude Code, it's not picky about what model you use with it.
One of the main attractions of Pi Coding Agent is how lightweight it is. Long input sequences can be extremely taxing on lower end or older GPUs or accelerators. Claude Code and Cline both have system prompts that can bring less capable hardware to a crawl. By comparison, Pi Coding Agent's default system prompt is short enough to keep things snappy, especially with prompt-caching enabled.
However, that speed comes at the expense of many of the guardrails and safety features we see on other coding agents. This is one you'll probably want to spin up in a virtual machine, container, or even a Raspberry Pi.
Much like Claude, the Pi Coding Agent can be installed using the appropriate one liner for your system. After that, all that's required is a little bit of JSON telling the agent harness where to find your model.
If you've been following along, the setup is fairly simple. Using your preferred text editor, create the following file:
Windows:
edit ~/.pi/agent/models.json
Linux / Mac:
nano ~/.pi/agent/models.json
Next, paste in the following template. If you've set an API key, replace no_API_key_required with your key. The rest of these will depend on what model and port you're using. You'll also want to adjust the contextWindowSize to match what you set in Llama.cpp.
"providers": {
"llama.cpp": {
"baseUrl": "http://localhost:8080/v1",
"api": "openai-completions",
"apiKey": "none",
"models": [
{ "id": "unsloth/Qwen3.6-27B-GGUF:Q4_K_M" }
]
}
}
}
With that out of the way, we can navigate to our working directory, launch Pi Coding Agent, and get to work vibe coding our next hobby project.
pi --model unsloth/Qwen3.6-27B-GGUF:Q4_K_M
Cline
Claude Code integrates directly with popular integrated development environments (IDEs) like VS Code, but if you're going this route, we also recommend checking out another open source app called Cline.
Installing Cline is as simple as finding it in VS Code's — or a supported IDE's — extension manager and adding it to your library.
Cline is available as an extension in many popular IDEs, including VS Code - Click to enlarge
Next, we'll point Cline at our Llama.cpp server and adjust a few hyperparameters like temperature and context size:
- Base URL: http://localhost:8080/v1
- Model ID: unsloth/Qwen3.6-27B-GGUF:Q4_K_M
- Context Window Size: 65536 (Or whatever you set in Llama.cpp)
- Temperature: 0.6
Once the app is installed, all you need to do is point Cline at your Llama.cpp server. - Click to enlarge
Then, set your max context size and model temperature. - Click to enlarge
Once it is configured, you can interact with Cline through its chat interface. Any files or edits will appear in VS Code as they're generated.
One of Cline's more useful features is the ability to switch between a pure planning mode and an action mode. If you've ever gotten frustrated because Claude interpreted a question as a call to action when what you really want to do is workshop a problem, this is a huge help.
As you interact with Cline, changes will appear in VS Code's editor. - Click to enlarge
Are local models finally good enough?
So can Qwen3.6-27B replace Opus 4.7 or GPT-5.5? Not exactly. As you probably guessed, a 27B LLM isn't a replacement for a multi-trillion parameter frontier model.
However, you might be surprised with just how far you can get with local models these days. In our testing, Qwen3.6-27B easily one shot an interactive solar system web app and was able to accurately identify and patch bugs in an existing code base.
Working with Cline, Qwen3.6-27B managed to one shot an interactive solar system web app. - Click to enlarge
Admittedly, these are fairly trivial projects. To get a better sense of how well the model performs, I handed it over to fellow vulture Thomas Claburn to see how it compares to his recent experience with Claude Code.
He writes:
I've only recently started playing around with local models, but Tobias's experience seems similar to my own. I've been using the pi coding agent, with OMLX as the model server, and while the token rate is a lot slower, I'm satisfied with Qwen so far, at least for small scripts.
For example, I asked the model to write a Python script for resizing images to a specified width and it did so – after about five minutes with a few manual approvals.
Claude Code's assessment of the Qwen model's work is more positive than I expected – "Overall: Strong, production-quality script."
Claude had some improvements to suggest, but none of them were necessary. For example:
get_save_format silently treats all non-PNG as JPEG A .webp file in the directory would be filtered out by SUPPORTED_EXTENSIONS, but if that set ever grows, the fallthrough to JPEG would be a silent misbehavior. An explicit elif or a lookup dict would be safer.
Given the time required to generate that code, I can see using local agents for focused, discrete code changes, scripts, and minimal web projects.
With a more substantial project, I expect there would be too many things that need correction. But a lot is going to depend on the skills and tools available to the local model. The best way to figure out if local models are plausible is to give them a try – they might work for your purposes. Make sure you have memory-heavy hardware – and make sure you have your data backed up.
Are these agents even safe?
With all the hullabaloo over the security nightmare known as OpenClaw, it's a good question. Thankfully, most of the frameworks we've discussed here are fairly limited in their autonomy. By default, Claude Code, and Cline rely on having a human-in-the-loop to approve code changes and execute shell commands.
Unless you've whitelisted a set of commands or are spamming the enter key before reading without taking the time to understand what it is that the agent is trying to do, the blast radius should be manageable. We emphasize "should be" because a basic understanding of the programming language and common CLI commands goes a long way here. If the model starts asking to run rm -rf on files or folders outside your working directory, something probably has gone wrong.
This isn't the case with Pi Coding Agent, which operates in YOLO mode out of the box, which gives it free rein to read and modify anything it has access to. In a dedicated development environment like a virtual machine or Raspberry Pi, this might be an acceptable risk, but if it's not, you may want to consider running the agent in a proper sandbox.
Containerization offers an easy avenue for this. It's fairly simple to spin up a Docker container and pass your working directory through to it. Docker is a whole can of worms on its own, but the following run command should give you a reasonable starting point for a sandboxed environment. You can find instructions on installing Docker on your preferred OS here.
docker run -it --name vibe_container -v working_dir:/working_dir ubuntu /bin/bash
This will spin up a new Ubuntu docker container and pass through our working directory to the container. Any changes will be limited to that folder or the container.
If you'd like to see a comprehensive guide on building agent sandboxes, let us know in the comments section. ®
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み