Fast.io

AI-first file sharing and collaboration. 251 MCP tools give agents a full workspace: file storage, branded shares, comments, workflows, and built-in RAG. 50GB free, no credit card.

Documentation

fastio

A command-line interface for the Fastio cloud storage platform. Built in Rust for speed, reliability, and cross-platform support.

Installation

npm (recommended)

npm install -g @vividengine/fastio-cli

Or run without installing:

npx @vividengine/fastio-cli --help

Shell script

curl -fsSL https://raw.githubusercontent.com/MediaFire/fastio_cli/main/install.sh | sh

Binary download

Pre-built binaries for macOS, Linux, and Windows are available on the Releases page.

From source

Requires Rust 1.88+ (edition 2024):

cargo install --path .

Quick Start

# Log in (opens browser for PKCE authentication)
fastio auth login

# Or log in with email/password
fastio auth login --email user@example.com --password ****

# Check auth status
fastio auth status

# List organizations
fastio org list

# Create a workspace
fastio workspace create --org <org_id> "My Workspace"

# Upload a file
fastio upload file --workspace <workspace_id> ./document.pdf

# Download a file
fastio download file --workspace <workspace_id> <node_id> --output ./downloads/

# Ask the AI about your workspace
fastio ai chat --workspace <workspace_id> "What files do I have?"

# Log out
fastio auth logout

Authentication

The CLI supports multiple authentication methods, checked in this order:

  1. --token flag (one-off bearer token)
  2. FASTIO_TOKEN environment variable
  3. FASTIO_API_KEY environment variable
  4. Stored credentials from --profile (or default profile)

PKCE Browser Login (Recommended)

fastio auth login

Opens your browser for secure OAuth authentication. Tokens are stored locally and automatically refreshed.

Email/Password Login

fastio auth login --email user@example.com --password ****

API Key

# Create an API key
fastio auth api-key create --name "CI pipeline"

# Use it for subsequent commands
export FASTIO_API_KEY=your-key-here
fastio org list

Two-Factor Authentication

# Check 2FA status
fastio auth 2fa status

# Enable 2FA
fastio auth 2fa setup --channel totp

# Verify 2FA code after login
fastio auth 2fa verify --code <CODE>

Output Formats

All commands support --format to control output:

# Table format (default for terminals)
fastio org list

# Markdown format (default when piped; optimized for LLM consumers)
fastio org list | cat

# JSON format (for scripts that parse structured output)
fastio org list --format json

# CSV format
fastio org list --format csv

# Explicit markdown (GitHub-flavored, byte-equivalent to the server's ?output=markdown)
fastio org list --format markdown
# `--format md` is accepted as an alias

# Filter specific fields
fastio org list --fields name,id,description

Markdown replaced JSON as the non-TTY default on 2026-04-15. The rendered output is byte-equivalent to what the Fastio API produces for ?output=markdown: a **Result:** success|failure preamble, object-valued errors promoted to a leading # Error section, and each remaining top-level key as an H1 section in insertion order. Arrays of associative records render as GFM pipe tables (union of keys in insertion order); scalar lists render as bulleted lists.

Note on escaping: bullet values and heading text are not escaped — the renderer takes a light-touch approach matching the server contract, because the output is meant to be read or rendered, not embedded into other markdown. Downstream consumers that render the output to HTML MUST sanitize. The renderer does strip Unicode bidi, zero-width, and C0/C1 control characters as a Trojan-Source defense; table cells escape |, \, `, and newlines; HTML-like cell content is wrapped in inline-code fences.

Pipelines that need machine-parseable output can opt back in with --format json.

Commands

Authentication & User

GroupDescription
authLogin, logout, 2FA, API keys, OAuth sessions
userUser profile, search, assets, invitations
configureCLI profiles and settings

Organizations & Workspaces

GroupDescription
orgOrg CRUD, billing, members, transfer tokens, discovery, assets
workspaceWorkspace CRUD, search, limits, jobs-status (poll async jobs)
memberWorkspace/share member management
invitationList, accept, decline, delete invitations; join accepts or declines one by its email key
dashboardPer-workspace dashboard card feed: get, dismiss, undismiss

Files & Storage

GroupDescription
searchUnified search — one query across a workspace or share, grouped into files / metadata / comments buckets. Start here for any "find X"
filesList, create folders, move, copy, rename, delete, trash, versions, search (flat file list, --workspace or --share), content (a file's extracted text as addressable chunks — relevance --query, --page, --chunk-from/--chunk-to, or --nodes to score up to 10 files at once), lock
uploadFile upload (chunked with progress), text upload, URL import, session management
downloadFile download (streaming with progress), folder ZIP, batch
lockAcquire, check status, heartbeat, release file locks
metadataMetadata extraction and search: eligible, details, search, and async single-file extract (SPENDS AI CREDITS — needs --confirm-ai-spend; --wait polls to a terminal state)

Shares & Collaboration

GroupDescription
shareShare CRUD, files, members, password auth
fileshareFile Shares — durable single-file link shares (replaces the retired QuickShare): create/list/info/update/delete, grants, download/versions/preview, upload write-back, activity, ws-token
commentComments, replies, reactions, attachments
eventActivity events, search, polling
previewFile preview URLs and transforms
assetOrg/workspace/user asset management

AI

GroupDescription
ripleyFastio's delegated AI agent — ask, chat, history, message management, summary, transactions (ai is a hidden alias). Searching is not a Ripley verb — use search

Platform

GroupDescription
appsApp listing, details, launching
importCloud import providers, identities, sources, jobs, writebacks
intentsAgent Intents — announce what you are doing so peers see it before they collide: allocate, list, fill, get, release
mcpStart built-in MCP server for AI agents
completionsGenerate shell completions (bash, zsh, fish, PowerShell)

Utilities

GroupDescription
how-toGrounded "how do I…" answers about Fastio itself (alias howto)
idInspect Fastio identifiers offline (no auth, no network): classify an id's entity type and family
viewRender a single note or .md file node in the terminal
skillPrint the built-in agent skill guide
systemAPI health checks: ping, status (no auth required)

MCP Server Mode

The CLI includes a built-in Model Context Protocol server for AI agent integration. Run it as a subprocess:

fastio mcp

This exposes the CLI's action-routed tool surface as MCP tools over stdio, compatible with Claude Desktop, VS Code, and other MCP-compatible clients. A few high-risk or local-byte operations (sign send/void, fileshare upload write-back and ws-token) remain CLI-only, and the sign tool appears only when E-Sign is enabled.

Tool responses are rendered as GitHub-flavored Markdown by default, byte-equivalent to the Fastio API's ?output=markdown output. Markdown is substantially more token-efficient for LLMs than pretty-printed JSON, so the MCP server uses it for every read and status response.

{
  "mcpServers": {
    "fastio": {
      "command": "fastio",
      "args": ["mcp"]
    }
  }
}

Filter which tools are available:

fastio mcp --tools auth,org,workspace,files,upload,download

Authentication and backend follow the standard CLI rules: the server honors the global --api-base, --token, and --profile flags (and the FASTIO_TOKEN / FASTIO_API_KEY env vars), so you can point it at a non-default backend or profile — e.g. fastio --profile staging mcp or fastio --api-base https://api.example/current mcp.

Shell Completions

Generate shell completions for your shell:

# Bash
fastio completions bash > ~/.bash_completion.d/fastio

# Zsh
fastio completions zsh > ~/.zfunc/_fastio

# Fish
fastio completions fish > ~/.config/fish/completions/fastio.fish

# PowerShell
fastio completions powershell > _fastio.ps1

Profiles

Manage multiple accounts with named profiles:

# Set up a profile interactively
fastio configure init

# Log in to a specific profile
fastio auth login --profile work

# Use a profile for a command
fastio org list --profile work

# Set default profile
fastio configure set-default work

# List all profiles
fastio configure list

Global Options

FlagDescription
--format json|table|csv|markdownOutput format (markdown is the default when piped)
--fields name,id,...Filter output fields
--detail terse|standard|fullServer-side response verbosity via ?output=<detail>; when omitted the server returns its full shape
--no-colorDisable colored output
--quiet / -qSuppress all output
--verbose / -vIncrease verbosity; repeatable (-v info, -vv debug, -vvv trace API calls)
--profile <name>Use named profile
--token <jwt>One-off bearer token
--api-base <url>Override API base URL
--version / -VPrint version (root command only, e.g. fastio --version)

Configuration

Configuration files are stored in the platform config directory, under a fastio-cli folder: $XDG_CONFIG_HOME/fastio-cli (typically ~/.config/fastio-cli) on Linux, ~/Library/Application Support/fastio-cli on macOS, and %APPDATA%\fastio-cli on Windows:

FilePurpose
config.jsonProfile settings and API base URL
credentials.jsonStored authentication tokens

License

Apache License 2.0. See LICENSE for details.