Revdoku

Revdoku lets Claude, Codex, ChatGPT, and other AI agents publish generated reports, dashboards, prototypes, and app sites as real websites with stable URLs.

Documentation

Revdoku

Email inboxes with shared file storage for people and AI agents. Give an agent or project its own inbox to receive messages and attachments. Each inbox is a private storage bucket with its own email address, where you can also store and share documents, data, and project files with authorized people and agents.

Ask your agent to summarize incoming mail, collect invoices and attachments, or monitor replies to submissions. Use hosted MCP for AI agents, the CLI for local files and inbox access, or the REST API for your own integrations. Buckets keep file versions so you can review changes and restore earlier files.

The skill supports uploads and file changes as well as reading mail. It also supports bucket archiving, permanent bucket deletion, and agency client account creation when explicitly requested and authorized. Permanent deletion requires approval for the exact account and bucket. Local CLI use stores Revdoku credentials and state on your machine; host tool permissions remain in control.

For developers

Start hereWhat you get
Standalone CLITerminal installation and usage without an AI integration.
Versioned CLI downloadsA portable Bash executable, installer, and SHA-256 checksums.
JavaScript examplesRunnable Node.js examples with no runtime dependencies.
TypeScript examplesThe same workflows with types and shared source.
API reference · OpenAPIAuthentication, inbox creation, incoming mail, and private storage.

The examples cover creating a ready inbox, reading incoming messages, downloading attachments, uploading and reading files, and handling quotas and retries. CLI, examples, skills, and plugins share this repository. For agent setup, see Local AI apps.

Prompt for an AI agent

Connect Revdoku so you can receive and read email and attachments, and store and share my files. Follow https://revdoku.com/llms-install.md, help me sign in through the browser, and verify the connection. Then continue my task, or ask what I want to do.

Receive and read email

Each bucket has its own incoming email address. Bucket creation returns the address and receiving state; for an existing bucket, use bucket_get(include_email: true) with write access or Bucket settings → Email. Check email.receiving_enabled before using the address.

With the CLI, run revdoku inbox --bucket-id bkt_... to retrieve the address, readiness, and activity. Use revdoku emails --bucket-id bkt_... to list mail and revdoku email eml_... --bucket-id bkt_... to read it.

Receive invoices, documents, project updates, or authorized service verification messages. Each accepted email is saved as original message.eml, decoded message.json, readable message.md, and attachment files. Authorized people and agents can read these through the email API and tools; file tools also expose the stored representations.

Use bucket_email_list or the CLI emails command with a saved next_cursor to poll for incoming messages. bucket_email_get returns a message directly; bucket_email_download retrieves attachments or the original. Anyone knowing the address can email the bucket; reading its contents requires access. See incoming email and the API contract.

Additional file storage

Use revdoku upload ./project-files to save a local folder privately. Read files, inspect history, and restore earlier versions through the CLI, MCP, API, or dashboard. All stored files can be downloaded from Revdoku at any time.

Share the bucket's dashboard link with people who have account access. Authorize each AI connection separately for the intended buckets. A dashboard link does not grant access by itself. Agents can work on the same files with locks and revision checks to coordinate changes.

See the storage quick start, file sharing, and multiple-agent example.

Start free

Create an account at https://app.revdoku.com/users/sign_up and connect in the browser. Never paste account credentials or verification codes into AI chat. You can start free. See pricing for current plans.

Private storage and collaboration follow the Terms of Use. Contact support@revdoku.com for account, billing, or access questions.

Local AI apps

The installer supports codex, claude-code, cursor, antigravity, opencode, grok-build, hermes, openclaw, and all through the REVDOKU_AGENT environment variable. Automatic setup installs for Codex and any other detected clients.

Install the public skill and CLI:

npx skills add revdoku/revdoku --skill revdoku -g

To target one agent, add --agent codex (or claude-code, cursor, etc.). This also avoids the upstream PromptScript global-install error.

Hermes can install the complete skill directly:

hermes skills install revdoku/revdoku/skills/revdoku

To subscribe to this repository as a Hermes source, use hermes skills tap add revdoku/revdoku.

Claude Code users can run /plugin marketplace add revdoku/revdoku, then /plugin install revdoku@revdoku. Codex users can add the repository with codex plugin marketplace add revdoku/revdoku and select Revdoku in the plugin browser. Gemini CLI users can run gemini extensions install https://github.com/revdoku/revdoku.

The Revdoku-owned skill and bundled CLI may also be used under MIT-0; see the skill's LICENSE. The repository's default license remains MIT. Third-party dependencies retain their own licenses.

If npm is unavailable:

curl -fsSL https://revdoku.com/install.sh | bash

The skill runs its bundled CLI. The shell installer verifies the CLI and skill files against embedded SHA-256 hashes before installation. If verification fails, fetch the current installer and retry. Download-source overrides are unsupported.

npx skills installs the CLI inside the skill, without adding revdoku to your shell PATH. Agents use the bundled scripts/revdoku.sh with the same arguments as the commands below.

Store or update a local folder:

revdoku upload ./project-files

The first run opens browser sign-in when credentials are missing. Re-running updates the same bucket. New accounts can be created on the web signup page.

Useful commands:

  • revdoku upload PATH — store or update private files.
  • revdoku files, revdoku read PATH — list and read stored files and email.
  • revdoku inbox --bucket-id ID — check the incoming address and receiving state.
  • revdoku versions, revdoku restore ID — inspect and restore history.
  • revdoku status, revdoku ls — inspect the connection and buckets.
  • revdoku dashboard, revdoku --help — open the dashboard or command reference.

Hosted and web agents

The hosted MCP endpoint is https://mcp.revdoku.com. All tools use OAuth. If the user has no Revdoku account, direct them to browser signup before using account tools.

Hosted agents cannot read files from the user's computer. Use the local Revdoku CLI for local folders, JavaScript bundles, images, fonts, PDFs, and other binary assets. MCP can directly write generated text files.

Tutorials

Per AI client guides:

Use those tutorials when manual setup or troubleshooting is needed. Follow the user's file storage, sharing, or incoming-email goal.

Public package

This repository contains the Revdoku CLI, skill, API documentation, and Claude/Codex/Cursor plugin manifests. The hosted MCP implementation runs at https://mcp.revdoku.com. MCP manifests use OAuth, and every tool descriptor requires OAuth.

See CHANGELOG.md, api.md, and the MCP mailbox guide.

Agency client accounts

Run revdoku status to see the credential's default account and authorized accounts. Each identity includes account_kind (standard, agency, or client), the separate client_name, and agency_account when the parent is granted. kind remains a compatibility alias. Use --account-id ID on each command to target a client; omitting it always uses the credential's main account. The Agency owner must explicitly include client accounts when connecting or in Account → Access.

revdoku account create-client "Client files" --client-name "Acme Studio" --account-id acct_agency
revdoku ls --account-id acct_...
revdoku upload ./project-files --account-id acct_...

An agency and its clients share account capacity. Each client keeps separate files, members, and branding. Account names and client names can differ. Unknown client names stay unset. revdoku account --account-id ID shows a client’s identity and provider guidance; client billing data remains restricted to the agency owner. Browser switching does not change the CLI credential’s default account.

Custom receiving domains

Check custom-domain availability in Account Settings. Setup lives in Account Settings → Domains → Email and requires an account administrator. Prefer an unused receiving subdomain; dedicated root domains are accepted. DNS changes require the user's authorization. Connecting a domain does not change existing bucket addresses. Use only the full address returned by Revdoku and check receiving_enabled. A domain switch may return assignment.status: pending; poll until active or failed, keeping the current address in use meanwhile. Never construct aliases or use +tag variants. See the email API contract.

CLI safety boundaries

Uploads require an explicit path; use revdoku upload . to select the current folder. revdoku upload PATH --dry-run lists files, exclusions and bytes without connecting or changing a bucket. The public CLI connects to the Revdoku API only at https://api.revdoku.com. --url and REVDOKU_URL also accept the previous https://app.revdoku.com setting and route its API calls to the new host. Browser sign-in and dashboard links use https://app.revdoku.com. Storage transfers use approved HTTPS origins.

revdoku delete --account-id ACCOUNT --bucket-id BUCKET previews permanent deletion. Review the target and irreversible effect with the user, then repeat with --confirm-delete TOKEN using that preview's token. It expires after ten minutes and is consumed before submission. On an uncertain response, check bucket status before creating another preview. Existing scripts must supply upload paths and use the deletion confirmation step.

Explain the action

For intentional reads, downloads, and changes, AI agents should include an optional reason: a short explanation of the purpose when known. Do not invent a reason or include secrets, file contents, or transcripts. Do not ask the user for a reason when the task already explains the purpose; omit it when unknown.

MCP uses reason; CLI uses --reason TEXT; REST uses a reason query parameter for reads and a JSON/body field for changes. The limit is 2,000 characters. Reasons appear in authorized Timeline and Logs views even with full request logging disabled. Change reasons are also saved in version history; read reasons belong to access events and never replace a saved version's reason.

revdoku read invoices.csv --bucket-id bkt_... --reason "Reconcile September expenses"
revdoku upload ./approved.csv --bucket-id bkt_... --reason "Store the approved totals"