fauxnix
fauxnix
Windows上でLinuxスタイルのコマンドを実行 — ネイティブに、決定的に、VMもWSLも不要。
fauxnixは、AIエージェント向けに構築されたbash→PowerShell変換レイヤーです。エージェントは既に知っているbash(ls -la | grep foo、find . -name '*.ts' | wc -l、kill -9 1234)を書き続けるだけで、fauxnixは各コマンドをPowerShellに決定的に変換し、ネイティブに実行し、GNU/Linux風の出力(ls -lの列、bashスタイルのエラーメッセージ、coreutilsの終了コード、UTF-8/GBKの自動処理)を返します。
npm install -g fauxnix-cli # then point any MCP harness at `fauxnix mcp`$ fauxnix "ls -la src | head -2"
-rw-r--r-- 1 me me 1204 Aug 16 09:12 ast.ts
-rw-r--r-- 1 me me 8192 Aug 16 09:12 cli.ts
$ fauxnix "cat nope.txt"
cat: nope.txt: No such file or directory # not a PowerShell stack trace測定結果: あなたのモデルはおそらくPowerShellが思っているより苦手
同じモデル(DeepSeek-V4-Pro)、同じ5つのタスク、1台のWindowsマシンでの3つの実行モード — 完全なデータはdocs/benchmark-deepseek-v4-pro.mdと`docs/benchmark-ark-models.mdにあります:
PowerShell | fauxnix | Git Bash | |
ツール呼び出し / 予期しないエラー | 14 / 9 | 7 / 0 | 4 / 0 |
時間 (T1–T4) | 163s | 66s | 57s |
Volcano Ark Coding Plan上の7モデルすべてで、PowerShellとfauxnixの差はテストしたすべてのモデルで確認されました — 最悪のケース(kimi-k2-thinking): PowerShellで書くと3.1倍遅く、24件のエラーイベントが発生したのに対し、fauxnixではエラーゼロ。fauxnixはbashツールチェーンをインストールしなくても、実際のbashの上限の約15%以内に収まります。
Related MCP server: wmux
なぜか
LLMエージェントはPowerShellよりもbashの方がはるかに得意です — bashはトレーニングデータの大部分を占めるため、Windows上のモデルは「正しく見えるが実行できない」コマンド(誤ったクォート、curlではないcurl、コードページ不一致による文字化け、不可解なCategoryInfoエラーダンプ)を生成することがよくあります。既存の解決策は、完全なVM(WSL — 重く、ファイルシステムが異なり、環境が分離されている)か、単純なシェルラッパー(内部は依然としてPowerShell)のどちらかです。
fauxnixは第三の道を選びます: エミュレートせず、翻訳する。Linuxコマンドラインの大規模で価値の高いサブセット — ファイル操作、テキスト処理、プロセス管理、アーカイブ、ネットワークの基本 — は、PowerShell + .NETにきれいにマッピングできます。fauxnixはそのサブセットを忠実に実装し、翻訳できないものについては大声で役立つように失敗するため、エージェントが黙って間違った結果を得ることはありません。
インストール
npm install -g fauxnix-cliまたはソースから:
git clone https://github.com/20000419/fauxnix && cd fauxnix && npm install -g .npmパッケージ名は
fauxnix-cliです(npmのfauxnixという名前は無関係の2015年のwebsocketライブラリが所有しています)。インストールされるコマンドは依然としてfauxnixです。
必要条件: PowerShell 5.1+(内蔵)とNode.js ≥ 18を搭載したWindows。
クイックスタート
# one-off commands
fauxnix "ls -la"
fauxnix "grep -rn TODO src | wc -l"
fauxnix "cat log.txt | grep -i error | sort | uniq -c"
# see what a command becomes (great for debugging / learning PS)
fauxnix translate "find . -name '*.log' -mtime +7 -delete"
# check your environment
fauxnix check
# run the MCP stdio server (what agent harnesses connect to)
fauxnix mcp未知のコマンド(git、node、npm、python、cargo、gh、dockerなど)は、argvスタイルのクォートでネイティブにそのまま渡されます — 文字列の再解析も、クォートのバグもありません。
エージェントハーネスでの使用
fauxnixには、bashツール(さらにfauxnix_translateとfauxnix_session)を公開するMCP stdioサーバーが含まれています。MCP対応の任意のハーネスから利用できます:
Claude Code
claude mcp add fauxnix -- fauxnix mcpCodex (~/.codex/config.toml または codex mcp add fauxnix -- fauxnix mcp)
[mcp_servers.fauxnix]
command = "fauxnix"
args = ["mcp"]注: 非対話型のcodex execモードでは、MCPツール呼び出しは承認レイヤーによって自動的に拒否されます。--dangerously-bypass-approvals-and-sandboxを渡すか(または対話的に実行して一度承認してください)。
OpenCode (opencode.json)
{
"mcp": {
"fauxnix": { "type": "local", "command": ["fauxnix", "mcp"] }
}
}Kimi Code — 他とは異なり、MCPサーバーはTOML設定ではなくJSONファイルにあります: ~/.kimi-code/mcp.json
{
"mcpServers": {
"fauxnix": { "command": "fauxnix", "args": ["mcp"] }
}
}任意のMCPクライアント — stdioサーバー: fauxnix mcp。ツール名はbashです(FAUXNIX_TOOL_NAMEで上書き可能)。ツールの説明にはサポートされているサブセットが既に含まれているため、システムプロンプトの変更は不要です。
MCPセッションは、ツール呼び出しをまたいでcwd、環境変数、export/unset、cd -/OLDPWDを保持します — ステートレスなexecではなく、ログインしたシェルのように動作します。
翻訳されるもの
約105のコマンド。開発中はすべてWindows(Git Bash)上の実際のGNU coreutilsと出力を照合しています:
ファイル:
ls cp mv rm mkdir rmdir touch mktemp ln readlink realpath basename dirname stat file du df find chmod chown diffテキストフィルタ:
grep egrep sed awk sort uniq cut tr— sed/awkスクリプトは翻訳時に解析されます(サポートされていない構文は名前付きエラーをスローし、黙って誤動作することはありません)テキストI/O:
echo printf cat head tail wc tee nl tac md5sum sha1sum sha256sum base64 seq yes xargsシェル/システム:
cd pwd export unset env printenv ps kill pkill pgrep sleep which type whoami id groups date uname hostname uptime free nproc clear true false test [ [[ : pushd popd dirs sudo timeout man history less more source . eval exit alias setネットワーク:
curl wget ping netstat ss ip ifconfig nslookup dig hostアーカイブ:
tar gzip gunzip zcat zip unzip
さらにシェル構文: パイプ、&& / || / ;、リダイレクト(> >> 2> 2>&1 < &>、/dev/null)、クォート、$VAR $(...)コマンド置換、VAR=x cmdプレフィックス、~展開、POSIXスタイルのパス正規化(/tmp、/d/foo → D:\foo)。
終了コードはbashの慣例に従います: 0=成功、1=失敗、2=使用法/重大なエラー、127=コマンドが見つからない、124=タイムアウト。
仕組み
bash command ──parser──▶ AST ──translator──▶ PowerShell script ──executor──▶ powershell.exe
│
agent ◀── GNU-style output, bash-style errors ◀── decoder (UTF-8 → GBK fallback) ◀┘決定的な翻訳、ランタイムでのLLM呼び出しゼロ。
各コマンドは、「Fauxnix契約」に従った自己完結型のPowerShellブロックを生成するジェネレーターにマッピングされます: 行ごとの文字列stdout、bashスタイルのstderrには
[Console]::Error.WriteLine、終了コードには$script:fx_exit、stdinには$input。エグゼキューターはすべてのスクリプトをUTF-8強制(
[Console]::OutputEncoding、$OutputEncoding、chcp 65001)でラップし、出力を厳密なUTF-8としてデコードし、レガシーなネイティブツールにはGBK(936)フォールバックを使用し、stderrからCLIXMLシリアライゼーションとPowerShellのノイズを除去し、一般的なPowerShellエラー(zh-CNロケールのメッセージを含む)をbashの表現に書き換えます。スクリプトは
-EncodedCommand(UTF-16LE)で実行され、32 KBのコマンドライン制限を超える場合は一時.ps1ファイルに透過的にフォールバックします。
既知の相違点(正直なリスト)
fauxnixは、エージェントが実際に実行するコマンドに最適化されています。文書化された相違点:
X=1単独の代入はexportセマンティクスに従います(セッション全体で1つの環境。bashのシェル変数とエクスポート変数の区別は存在しません)。また、同じセグメント内のプレフィックスは、コマンド自身の単語内の$VARから参照できます(Z=in [[ $Z == in ]]はここでは真ですが、bashでは単語展開が一時環境より先に行われるため偽です)。yesは65,536行に制限されています — PS 5.1のパイプラインは上流のプロデューサーに停止を通知できないため、無制限のyes | headはハングします。tail -f、eval、alias、ヒアドキュメント、while/until/case、単語レベルの$((...))算術展開、バックグラウンド&は、誤動作する代わりに実行可能なエラーメッセージで拒否されます。(if/then/else/fi、for x in ...、バッククォート置換、command -v、パイプラインread、dotenvスタイルのsourceはサポートされています。)command -v <builtin>は、bashが組み込み名のみを出力するのに対し、/usr/bin/<name>を出力します。終了コードと空結果のセマンティクスは一致します。chmodは読み取り専用ビットのみをマッピングします。実行ビットはWindowsでは何もしません。chownは(Git Bashと同様に)黙って何もしません。ps auxの列は近似値です(プロセスごとのCPU%の計算はなく、USERは?と表示されます)。gzip -c/パイプラインのstdinはテキスト忠実であり、バイト忠実ではありません。ファイルモードのgzip fはバイト単位で正確です。ちょうど1行を生成するパイプラインを
wc -lにパイプすると、その行を数えます(bashでは、プロデューサーが末尾の改行を省略した場合0と数えます)。printf 'x' | md5sumはバイト単位で正確です。sed/awkは一般的なサブセットをサポートします。ホールドスペース、ラベル、配列、ループは翻訳時に「サポートされていません」という名前付きエラーをスローします。curl/wgetは、エージェント駆動のHTTPに対する安全なデフォルトとして、ループバック/プライベート/予約済みアドレス(localhost、127.x、::1、10.x、172.16–31.x、192.168.x、169.254.x)を拒否します。ネイティブツールのパイプラインとエンコーディング: PS 5.1にはコンソールエンコーディングのノブが1つしかないため、ローカライズされた管理ツール(ipconfig、tasklist — zh-CNではGBK)とUTF-8ネイティブの開発ツール(node、curl)をパイプライン内で両方きれいにデコードすることはできません。デフォルトはUTF-8の開発ツールを優先します。エージェントがネイティブWindows管理ツールの中国語出力をgrepする場合は、
FAUXNIX_NATIVE_ENCODING=ansiを設定してください。ファイルの読み取りは常にファイルごとにスニッフィングされます(UTF-8厳密 → GBKフォールバック)ため、GBK ファイルに対するgrep/sed/awkはどちらのモードでも機能します — ロケールが想定するエンコーディングのみに一致するGit Bashとは異なります。
開発
npm install
npm test # unit + real-PowerShell integration suite (Windows only, auto-skipped elsewhere)
npm run build
npx tsx scratch/run.mjs "any bash command" # quick live checkアーキテクチャマップ: src/parser.ts(bashサブセット → AST)· src/translator.ts(AST → PowerShell + エグゼキューターラッパー)· src/executor.ts(spawn、リダイレクト、セッション永続化)· src/commands/*.ts(コマンドごとのジェネレーター)· src/mcp.ts(MCPサーバー)· src/cli.ts。
ライセンス
MIT © 20000419
Available Tools
4 toolsbashADestructive
Execute a Linux/bash-style command on this Windows machine.
Commands are deterministically translated to PowerShell and executed natively — no WSL or VM. Output is formatted to look like GNU/Linux tooling (ls -l, ps aux, df -h ...), errors look like bash errors, and text encoding (UTF-8/GBK) is handled automatically.
Supported: pipes (|), && / || / ;, redirections (> >> 2> 2>&1 < /dev/null), variables ($VAR $HOME $1 $# "$@" ~), set -- / shift, array assignment A=(x y z), ${name[n]} ${#name[@]} ${name//pat/str} ${name:off:len}, command substitution $(...), and 109+ coreutils-style commands (., :, [, [[, alias, awk, base64, basename, cat, cd, chmod, chown, clear, command, cp, curl, cut, date...). Unknown commands (git, node, npm, python, cargo...) are passed through and executed natively with argv-style quoting. Not supported: heredocs, env -i/--ignore-environment, background jobs. if/then/elif/else/fi, for-in loops, while/until, case ... esac, and word-level $((...)) arithmetic expansion are supported. CWD, environment variables, export/unset, cd, and positional parameters (set -- / $1 / "$@") persist across calls within this session — a resident PowerShell 5.1 host is started when the MCP session begins (and after reset), so the first bash tool call is already warm. Efficiency: when two or more commands or verification steps are already known, prefer bash_batch once instead of making several bash calls. Keep separate calls only when the next command requires model interpretation of the previous output. For byte-exact work, measure with wc -c or stat -c %s instead of inferring CRLF byte counts from displayed text. MCP capture is bounded to 256 KiB stdout and 64 KiB stderr across the complete command list; larger output is marked truncated. Redirect larger artifacts to files. These transport-safe budgets include room for JSON escaping and duplicate text/structured fields. Exit codes follow bash conventions (0 ok, 1 fail, 2 usage/serious, 127 command not found, 124 timeout, 130 cancelled). The tool also returns structuredContent (schemaVersion 1) with stdout/stderr/exitCode/timedOut/cancelled/truncated/sessionId.
Platform requirement: the execution backend is native Windows PowerShell 5.1+. On hosts without PowerShell on PATH (e.g. Linux containers/sandboxes), the bash tool returns exit code 127 with an actionable error instead of running the command.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The bash-style command line to run | |
| timeout_ms | No | Timeout in milliseconds (default 120000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive/openWorld, but the description adds substantial non-obvious behavior: output is GNU-style formatted, encoding is auto-handled, session state (CWD, env, positional params) persists via a resident PowerShell host, output is truncated past 256 KiB stdout / 64 KiB stderr, and exit codes follow bash conventions with specific values. This is well beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose before diving into capability lists, and every paragraph addresses a decision an agent must make. It is long, and one sentence about JSON escaping/duplicate fields is meta-commentary that does not help invocation, but overall the density is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully specifies the return shape via structuredContent (stdout/stderr/exitCode/timedOut/cancelled/truncated/sessionId), explains truncation budgets and exit-code semantics, and covers the platform prerequisite. An agent has everything needed to call and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and only two parameters exist, so the schema documents both fields. The description nonetheless adds real meaning to the command parameter by enumerating supported constructs (pipes, redirections, variables, arrays, command substitution, 109+ coreutils) and passthrough behavior for unknown commands like git/node.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Execute) and resource (a Linux/bash-style command) and immediately scopes the target platform (this Windows machine). It even names the sibling bash_batch as the preferred tool for multi-command flows, making it distinguishable without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly prescribes when to use bash_batch once instead of several bash calls, and when to keep calls separate (when the next command needs model interpretation of prior output). It also provides an actionable fallback rule for environments without PowerShell and a recommendation to redirect large artifacts to files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bash_batchADestructive
Compile and execute a preplanned multi-step bash workflow in one MCP round trip.
Use this instead of repeated bash calls when the complete sequence is already known. Steps run serially and atomically in the same persistent session: later steps see cwd, environment, and files from earlier steps, while run/reset requests cannot interleave. Every command is parsed and translated before step 1 runs, and the result reports each step separately.
By default the batch stops after the first nonzero exit. Set stop_on_error=false only when later steps should still run. timeout_ms and both output limits apply to the whole batch, not once per step. Output defaults to 256 KiB stdout and 64 KiB stderr; redirect larger artifacts to files. Preflight performs no operand-file reads: use sed -e with inline script text instead of sed -f. If a later command depends on model interpretation of an earlier result, use separate bash calls instead. For byte counts, include wc -c or stat -c %s as a verification step rather than calculating CRLF bytes mentally.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Ordered workflow steps; all are compiled before execution begins | |
| timeout_ms | No | Total timeout for the complete batch (default 120000) | |
| stop_on_error | No | Stop after the first nonzero exit (default true) | |
| stderr_limit_bytes | No | Total stderr budget shared by every step (default 65536) | |
| stdout_limit_bytes | No | Total stdout budget shared by every step (default 262144) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly discloses behavioral traits beyond the annotations: steps run serially and atomically in one persistent session, commands are pre-parsed before execution, output limits apply per-batch not per-step, preflight does no operand-file reads, and redirects are recommended for large artifacts. This complements the destructive/open-world hints with actionable detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized for a complex batch tool. It front-loads the core purpose and usage, then covers behavioral constraints, defaults, and caveats in a logical order. Every sentence conveys useful guidance without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by explaining step result reporting, failure behavior, session persistence, output limits, and preflight limitations. An agent has enough context to correctly select and invoke the tool, including how to handle large outputs and byte-count verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. The description adds meaningful semantics beyond the schema: timeout_ms and output limits apply to the whole batch rather than per step, and stop_on_error=false is recommended only when later steps should still run. This exceeds the baseline for fully-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Compile and execute a preplanned multi-step bash workflow in one MCP round trip') and explicitly contrasts it with repeated bash calls. It clearly distinguishes this tool from the single-command sibling bash by focusing on preplanned multi-step workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: use instead of repeated bash calls when the complete sequence is already known. It also provides exclusions: use separate bash calls when later steps depend on model interpretation of earlier results, and explains when stop_on_error=false is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fauxnix_sessionAIdempotent
Inspect or reset the persistent fauxnix shell session (current directory, environment, positional count, session id). Actions: "status" (default) or "reset".
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "status" shows the session state (cwd, tracked env keys, positional count); "reset" clears it back to a fresh shell | status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark idempotentHint=true and destructiveHint=false; the description adds that reset 'clears it back to a fresh shell' and enumerates what status exposes. This contextualizes the mutation behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence states the operation, resource, and fields, then a compact action list. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single optional enum parameter, no output schema, and detailed action semantics in the schema, the description covers the essentials including reset side effects. It could specify the shape of a status response, but that is a minor gap for such a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the action property already explains both enum values. The tool description adds only 'session id' to the status contents, so it slightly extends but does not need to compensate for the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (inspect/reset), a precise resource (persistent fauxnix shell session), and the exact state fields. This separates it clearly from sibling tools like bash and fauxnix_translate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action enum and sentence imply when to use it (inspect or reset session state), but there is no explicit guidance about when not to use it or which sibling would be preferred. Usage context is clear enough by implication, but no exclusion or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fauxnix_translateARead-onlyIdempotent
Translate a bash-style command into the equivalent PowerShell script WITHOUT executing it. Useful for learning/debugging what fauxnix does under the hood.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The bash-style command line to translate (never executed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-destructive operation. The description adds behavioral context by emphasizing 'WITHOUT executing it' and that the command is 'never executed', reinforcing safety beyond the annotations. This matches the bar for adding value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core action and immediate caveat (no execution) in the first sentence, then stating the use case. Every sentence earns its place without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter, no output schema, and rich annotations (readOnly, idempotent, non-destructive), the description is complete enough. It explains the translation function, non-execution guarantee, and appropriate use case. The absence of return value detail is acceptable since there is no output schema to contradict, and the use case is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (1 parameter fully described in schema), so the baseline is 3. The description adds minimal parameter information beyond the schema (just reiterates 'bash-style command line'), but it does clarify that the command is never executed, which complements the schema description. No enum parameters exist to add further context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool translates a bash-style command into PowerShell without executing it, specifying the verb 'Translate' and the resource 'bash-style command'. It distinguishes itself from siblings like 'bash' or 'fauxnix_session' by highlighting its non-execution and translation-only purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states this is for learning or debugging what fauxnix does under the hood, providing clear context for when to use it. However, it does not specify when not to use it or mention alternatives, though the sibling 'bash' implies execution which contrasts with this tool's non-execution nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.13.0- Added
bash_batch - Changed
fauxnix_session1 field changed- changed
Input schema / properties / action / descriptionPrevious value: -"\"status\" shows the session state (cwd, tracked env keys); \"reset\" clears it back to a fresh shell"New value: +"\"status\" shows the session state (cwd, tracked env keys, positional count); \"reset\" clears it back to a fresh shell"
3 tool updates
- First observed
bash - First observed
fauxnix_session - First observed
fauxnix_translate
TDQS
Scored across 4 tools
bash and bash_batch overlap in purpose (both execute commands), but the descriptions give clear guidance on when to use each (batch for preplanned sequences, separate calls when model interpretation is needed). fauxnix_session and fauxnix_translate are clearly distinct. Only minor risk of misselection between the two execution tools.
Two naming families coexist: bare 'bash'/'bash_batch' (shared prefix, but no verb_noun form) and 'fauxnix_session'/'fauxnix_translate' (server-prefixed). The pattern is readable and not chaotic, but conventions are mixed rather than uniform.
Four tools is well-scoped for a shell-emulation server: execution, batched execution, session inspection, and translation each earn their place with no redundancy.
The surface covers execution, batch workflows, session status/reset, and translation introspection, which is solid lifecycle coverage for a shell proxy. Minor gap: no direct way to kill or interrupt a running process beyond reset, but core workflows are covered.
Maintenance
Related MCP Connectors
LLM Orchestration Agent (Mcp)
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
1Linux microVM sandboxes for AI agents: run commands, files, processes, pause and wake.
Package intelligence MCP for AI agents — 22 tools, 19 ecosystems, AGPL SDK, free.
Related MCP Servers
- AlicenseBqualityDmaintenanceHigh-performance MCP server giving AI agents advanced filesystem and automation capabilities on Windows, with 26 tools across file I/O, search, Git, process management, and more.262MIT
- AlicenseNot gradedqualityAmaintenanceA native Windows terminal multiplexer with MCP bridge for AI agents, enabling browser automation, multi-agent coordination, and terminal control.424MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to execute PowerShell commands, manage files, inspect projects, run Git operations, and monitor system information on Windows through a local MCP server.-
- AlicenseNot gradedqualityBmaintenanceProvides a local Windows control plane for PowerShell and AI CLIs, exposing MCP tools for safe terminal sessions, bounded provider calls, routing, committees, and run receipts.5 npmMIT