This guide covers installation and smoke testing for the signed native inflow command-line application, its bundled
skills, and its local MCP server. The npm package is a compatibility notice and cannot run commands, start MCP, or
manage credentials.
This guide does not cover the separate direct InFlow API MCP server used for account management, policies, approvals, withdrawals, sellers, and users.
Install InFlow before configuring an agent host. Public installation supports Apple Silicon and Intel macOS, Windows x64 and ARM64, and Linux ARM64 and AMD64. On macOS, Homebrew is available:
brew tap inflowpayai/tap
brew install --cask inflowThe hosted shell installer supports macOS, Debian/Ubuntu, and Fedora/RHEL:
curl -fsSL https://inflowcli.ai/install.sh | bashOn Windows PowerShell:
irm https://inflowcli.ai/install.ps1 | iexOn macOS, Linux, or a Git Bash-like Windows environment, the compatibility endpoint delegates to the appropriate platform installer:
curl -fsSL https://inflowcli.ai/cli | bashWindows users can also install through WinGet:
winget install --id InFlowPayAI.InFlow --exactSigned Linux ARM64 and AMD64 Debian packages, RPM packages, and standalone archives are published through GitHub Releases. Signed Windows x64 and ARM64 MSI packages install the command-line application and on-demand vault service. For release-operator setup, see the native release guide.
The Windows MSI installs inflow.exe under %ProgramFiles%\InFlow, adds that directory to the system PATH, and
registers the demand-start InFlowVault service as NT SERVICE\InFlowVault. Per-user encrypted vaults live under
%ProgramData%\InFlow\vaults; uninstall preserves that directory.
Verify the installed executable:
inflow --version
inflow auth status --format json
inflow vault statusOAuth tokens, API keys, and Agent Enrollment Protocol credentials are encrypted in the local InFlow vault. Initialize or unlock it from a human-controlled terminal:
inflow vault unlockDo not put the PIN or passphrase in an agent prompt, MCP input, command-line flag, environment variable, or redirected standard input. The structured CLI and MCP server deliberately expose no unlock-factor field. When the vault is locked, the agent receives a human-action error; unlock it manually and retry the original request.
Useful lifecycle commands:
inflow vault status
inflow vault policy
inflow vault lock
inflow vault change-passphrase
inflow vault resetinflow auth logout removes local authentication and vault state after attempting eligible remote cleanup. Application
uninstall preserves encrypted vault data. Use the platform-specific purge operation only when the data must also be
removed.
The signed binary contains the CLI, MCP, and daemon entry points. Configure every host to execute that installed binary:
{
"mcpServers": {
"inflow": {
"command": "inflow",
"args": ["--mcp"]
}
}
}If a graphical host does not inherit the shell PATH, use the absolute path returned by:
command -v inflowTo use the sandbox environment in a host that supports per-server environment variables:
{
"mcpServers": {
"inflow": {
"command": "inflow",
"args": ["--mcp"],
"env": {
"INFLOW_ENVIRONMENT": "sandbox"
}
}
}
}Do not replace inflow with npx, Node, a repository checkout, or a copied JavaScript bundle. Those paths do not carry
the installed application identity required by the vault boundary.
The repository contains the agentic-enrollment and agentic-payments skills. A skills-aware host can install them
with:
npx skills add inflowpayai/inflow-cliThe repository also contains Claude Code, Cursor, Codex, and generic agent plugin manifests. Each plugin points its MCP
entry at inflow --mcp; the signed native application must already be installed on the host.
For an MCP-only host, print a bundled skill body and paste it into that host's instructions:
inflow --skill
inflow --skill agentic-enrollmentOn macOS, inflow --skill | pbcopy copies the default payment playbook. Use wl-copy or xclip on Linux and clip on
Windows.
Plain Claude Desktop does not use the Claude Code plugin manager. Paste the desired skill into project instructions, then add the shared MCP configuration to:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Fully quit and reopen Claude Desktop. Confirm the MCP server starts, then ask it to call auth_status.
Install the plugin from a Claude Code session:
/plugin marketplace add inflowpayai/inflow-cli
/plugin install inflow@inflow
The plugin installs the skill and MCP manifest together. Local Cowork launches the MCP server on the host; do not copy the binary, vault database, or credentials into its Linux guest. Remote Cowork cannot use a local MCP server unless the product provides an explicit host bridge.
After plugin installation, trigger /agentic-payments and ask the host to list InFlow MCP tools. Unlock the vault in a
separate host terminal before testing a credential-bearing tool.
Install the repository plugin through the host's plugin browser. Codex discovers .codex-plugin/plugin.json; Cursor
discovers .cursor-plugin/marketplace.json. Both ultimately execute the shared inflow --mcp entry.
For a manual Cursor setup, place the shared MCP configuration in ~/.cursor/mcp.json or .cursor/mcp.json, restart
Cursor, and confirm the tools panel shows InFlow.
These hosts can use the shared MCP configuration if they accept a standard-input/output MCP server. Use the exact
configuration shape required by the host, with command set to the installed inflow path and arguments set to
["--mcp"].
For a raw protocol smoke test:
{
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}'
printf '%s\n' '{"jsonrpc":"2.0","method":"notifications/initialized"}'
printf '%s\n' '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
} | inflow --mcpExpected: initialization reports serverInfo.name as inflow, and tools/list returns the installed tool inventory.
The live CLI is the source of truth for commands, schemas, and MCP tools:
inflow --llms --format json
inflow --llms-full --format json
inflow <command> --schema --format jsonFor each agent host:
- Confirm the installed executable reports the expected version.
- Confirm the skill loads when the host supports skills.
- Confirm MCP
tools/listreturns the current inventory. - Confirm
auth_statusreports locked state without exposing secrets when the vault is locked. - Unlock the vault manually and confirm
auth_loginreaches a verification URL. - Confirm
balances_listordeposit-addresses_listreturns structured data after authentication. - Confirm a read-only
x402_inspectormpp_inspectcall. - Run a payment only against an approved test endpoint and funded test account.
Do not use direct InFlow API MCP results as evidence for this local CLI-backed MCP surface.
For Homebrew:
brew upgrade --cask inflowFor a hosted installation, rerun the hosted installer. Reinstall or refresh the plugin separately when its skill or manifest changes, then restart the host.
For WinGet:
winget upgrade --id InFlowPayAI.InFlow --exactThe CLI checks the latest GitHub Release with a two-second deadline. Human executions may print an advisory update
notice. auth status structured output may include current_version and latest_version. An advisory does not block
the current command; VERSION_UNSUPPORTED means the upgrade is mandatory. Set NO_UPDATE_NOTIFIER=1 to disable the
advisory check.
Upgrades preserve the encrypted vault but leave it locked after daemon replacement. Unlock it manually before the next credential-bearing request.
Homebrew uninstall:
brew uninstall --cask inflowHosted macOS uninstall:
curl -fsSL https://inflowcli.ai/install.sh | bash -s -- --uninstallHosted Windows uninstall:
$env:INFLOW_UNINSTALL = '1'
try { irm https://inflowcli.ai/install.ps1 | iex } finally { Remove-Item Env:INFLOW_UNINSTALL }WinGet uninstall:
winget uninstall --id InFlowPayAI.InFlow --exactWindows Installer and Linux package uninstall preserve encrypted vault data. Linux install.sh --purge removes the
package and system vault data. inflow vault reset is the cross-platform command for intentionally removing local vault
state before uninstall.
On macOS or Linux, run command -v inflow in the same environment as the host. If the graphical host has a different
PATH, configure the absolute path. Run inflow --mcp in a terminal and inspect the host's MCP logs.
On Windows, restart the terminal and graphical host after installation so they inherit the updated system PATH. If
needed, configure the MCP command with the resolved full path, such as C:\Program Files\InFlow\inflow.exe, and inspect
the service with:
Get-Command inflow
Get-Service InFlowVaultRun:
inflow vault status
inflow auth status --format jsonIf the vault is locked, run inflow vault unlock in a human terminal. Do not add the factor to MCP configuration.
The skill is missing. Refresh the plugin on skill-aware hosts, or paste the output of inflow --skill into the host's
instructions.
Check inflow auth status --format json. Use --sandbox, --environment sandbox, or INFLOW_ENVIRONMENT=sandbox. Add
an env block only when the MCP host supports it.
The signed application deletes the standard legacy plaintext configuration and any path explicitly supplied through
--auth or INFLOW_AUTH_FILE. It cannot discover arbitrary paths that are no longer supplied. If an older installation
used a custom path, remove that file manually after confirming the signed application is using the encrypted vault. Do
not pass the legacy file to another application or attempt to import it into the vault.
Reinstall through the signed platform channel. Do not copy an executable between installations or invoke a development
bundle as a substitute. On macOS, verify with codesign --verify --deep --strict; on Windows, inspect the Authenticode
signature; on Linux, reinstall through the signed package or repository once the production repository is published.
Get-AuthenticodeSignature "$env:ProgramFiles\InFlow\inflow.exe"- Confirm command and MCP output never contains access tokens, refresh tokens, API keys, credentials, or unlock factors.
- Confirm agent and MCP schemas have no PIN, passphrase, password, secret, or raw authorization input.
- Confirm locked and unavailable vault states fail closed.
- Confirm the MCP host launches the installed signed binary, not npm or a development checkout.
- Confirm update checks contain no credentials and can be disabled with
NO_UPDATE_NOTIFIER=1. - Confirm reset, logout, uninstall, and purge behavior matches the user's intended data-retention choice.