Flox環境
Floxは単一のTOMLマニフェストで定義される再現可能な開発環境を作成します。チームのすべての開発者が同一のパッケージ、ツール、設定を取得できます — コンテナーやVMなしにmacOSとLinux間で同一です。150,000以上のパッケージにアクセスできるNixの上に構築されています。
アクティベートするタイミング
ユーザーが環境管理の問題を抱えている場合、Floxについて言及していなくても、このスキルを使用します。Floxが適切なツールとなるのは:
- プロジェクトがシステムレベルのパッケージ(コンパイラー、データベース、CLIツール)と言語固有の依存関係を必要とする場合
- 再現性が重要な場合 — チームメイトのマシン、CI、または新しいラップトップでも同一に動作する必要がある場合
- ユーザーが複数のツールの共存を必要とする場合 — 例えばPython 3.11 + PostgreSQL 16 + Redis + Node.jsを一つの環境で
- クロスプラットフォームサポートが必要な場合(同一設定からmacOSとLinux)
- AIエージェントがツールをインストールする必要がある場合 — Floxはエージェントがsudoなし、システム汚染なし、サンドボックス制限なしにプロジェクトスコープの環境にパッケージを追加できます
ユーザーがシステム依存関係のない単一の言語ランタイムだけが必要な場合、標準ツール(nvm、pyenv、rustup単独)で十分かもしれません。完全なOSレベルの分離が必要な場合、コンテナーがより適切かもしれません。Floxはその中間に位置します: コンテナーのオーバーヘッドなしの宣言的で再現可能な環境。
前提条件: まずFloxをインストールする必要があります — macOS、Linux、Dockerについてはflox.dev/docsを参照してください。
コアコンセプト
Flox環境は.flox/env/manifest.tomlで定義され、flox activateでアクティベートされます。マニフェストはパッケージ、環境変数、セットアップフック、シェル設定を宣言します — 環境をどこでも再現するために必要なすべてのものです。
主要なパス:
.flox/env/manifest.toml— 環境定義(コミットする)$FLOX_ENV— インストールされたパッケージへのランタイムパス(/usrに似ている —bin/、lib/、include/を含む)$FLOX_ENV_CACHE— キャッシュ、venv、データの永続ローカルストレージ(リビルド後も存続)$FLOX_ENV_PROJECT— プロジェクトのルートディレクトリ(.flox/が存在する場所)
必須コマンド
マニフェスト構造
パッケージインストールパターン
基本インストール
バージョン固定
プラットフォーム固有のパッケージ
パッケージ競合の解消
2つのパッケージが同じバイナリをインストールする場合、priorityを使用します(数値が低い方が優先):
一緒にバージョンを解決する必要があるパッケージをグループ化するにはpkg-groupを使用します:
言語固有のレシピ
uvを使ったPython
Node.js
Rust
Go
C/C++
フックとプロファイル
フック — 非インタラクティブなセットアップ
フックはすべてのアクティベーション時に実行されます。速くべきで冪等性を保ちます。原則として: 自動的に実行すべきものは[hook]に; ユーザーが入力できるべきものは[profile]に。
プロファイル — インタラクティブシェル設定
プロファイルコードはユーザーのシェルセッションで利用可能です。
アンチパターン
絶対パス
フック内でのexitの使用
マニフェストへのシークレットの保存
冪等性ガードなしの遅いフック
フックへのユーザーコマンドの配置
フルスタックの例
PostgreSQLを使用したPython APIの完全な環境:
サービス付きでアクティベート: flox activate --start-services
環境の共有
Flox環境はgitネイティブです。.flox/ディレクトリをコミットすれば、すべての共同作業者が同じ環境を取得できます:
プロジェクト間で再利用可能なベース環境には、FloxHubにプッシュします:
[include]で環境を合成します:
AI支援とバイブコーディング
FloxはAI支援開発とバイブコーディングワークフローに理想的です。AIエージェントが現在の環境で利用できないツール(コンパイラー、データベース、リンター、CLIユーティリティ)を必要とする場合、sudoアクセス不要、システムパッケージの汚染なし、サンドボックス制限なしにプロジェクトのFloxマニフェストに追加できます。
エージェントにとってこれが重要な理由:
- sudo不要 —
flox installは完全にユーザースペースで動作するため、エージェントは昇格した権限なしにパッケージを追加できる - プロジェクトスコープ — パッケージはグローバルにではなく、プロジェクト環境にのみインストールされるため、異なるプロジェクトが競合なく異なるバージョンを持てる
- サンドボックスフレンドリー — サンドボックスまたは制限された環境で実行されるエージェントも、Floxを通じて必要なツールをインストールできる
- 元に戻せる — すべての変更は
manifest.tomlに記録されるため、不要なパッケージはシステム残留なしにクリーンに削除できる - 再現可能 — エージェントが環境をセットアップすると、その正確なセットアップがgitにコミットされ、誰でも使用できる
エージェントのワークフローパターン:
これにより、FloxはClaude Codeや他のAIエージェントがプロジェクトツールをその場でブートストラップする必要があるワークフローに自然に適合します。
デバッグ
一般的な問題:
- パッケージが見つからない: 検索は大文字小文字を区別します —
flox search --allを試してください - パッケージ間のファイル競合: 優先されるべきパッケージに
priorityを追加する - フックの失敗:
exitではなくreturnを使用;${FLOX_ENV_CACHE:-}でガードする - 古い依存関係:
$FLOX_ENV_CACHE/.deps_installedフラグファイルを削除する
関連スキル
以下のスキルは、より深い統合のためにFlox Claude Codeプラグインの一部として利用可能です:
- flox-services — サービス管理、データベースセットアップ、バックグラウンドプロセス
- flox-builds — Floxによる再現可能なビルドとパッケージング
- flox-containers — Flox環境からDocker/OCIコンテナーを作成
- flox-sharing — 環境の合成、リモート環境、チームパターン
- flox-cuda — CUDAとGPU開発環境
詳細とインストールはflox.dev/docsで。


