# Install FilesUp in your assistant

This guide covers the FilesUp plugin 0.1.0 for Codex and Claude Code. The user asked to install and connect FilesUp, not to publish any content. It requires a local assistant with file and configuration access. A chat-only client needs its own remote MCP connection UI.

## Download and inspect

1. Resolve `./filesup-marketplace-0.1.0.zip` relative to this guide's URL. The public URL is https://filesup.app/plugins/filesup-marketplace-0.1.0.zip; during a local preview, use the same loopback origin as this guide.
2. Download the ZIP as a file. Its SHA-256 must be `d1d7f05baf9ec0c8bac934d95761ecb1b0369d03b7ff205379b404f3466c3974` and its size must be 25692 bytes. Stop if verification fails. The matching metadata is in `./downloads.json`.
3. Inspect archive paths before extraction; reject absolute paths, parent traversal and symlinks. Extract into a persistent user-owned folder such as `~/.filesup/plugins/0.1.0` (or the equivalent inside the Windows user profile). Reuse an identical existing version; do not overwrite modified files or delete older installations.
4. The extraction root must contain `.agents/plugins/marketplace.json`, `.claude-plugin/marketplace.json` and `plugins/filesup/plugin.json`. Check that the plugin name is `filesup`, its version is `0.1.0`, and both MCP manifests point only to `https://api.filesup.app/mcp`. The package has no install hooks. Do not execute downloaded scripts to install it. Its upload helper is for later user-authorized file sends.

## Configure this client

Determine which assistant is running from its actual environment. Configure only that client, at user scope. Preserve unrelated plugins, MCP servers, credentials and approval policies. Back up an existing config before editing it; merge the FilesUp entry instead of replacing the file. Reuse an existing matching installation; report a conflicting FilesUp source rather than overwriting it. Do not install or repair a missing client automatically.

### Codex

First resolve a working installed CLI. Check `command -v codex` and `type -a codex` (or `Get-Command codex -All` on Windows), then run each relevant existing candidate's `--version` and `plugin add --help`. A wrapper that fails with `spawn ENOENT` can coexist with a working CLI; do not conclude that Codex is absent after testing only the first PATH entry. On macOS, also check the installed Codex/ChatGPT app bundle. Known candidates include `/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex` and `/Applications/ChatGPT.app/Contents/Resources/codex-cli/bin/codex`; verify that a candidate actually exists and runs. Use its absolute path for all subsequent commands, with shell quoting when needed. Do not repair the wrapper, install another client or modify PATH. In the examples below, `codex` means the working executable you resolved.

Prefer the supported CLI flow, including when UI automation is unavailable or refused. Confirm its help supports these commands, then add the verified source:

`codex plugin marketplace add <absolute-extraction-root>`

Confirm the source using `codex plugin marketplace list`. If `codex plugin add --help` supports the install command, install and verify:

`codex plugin add filesup@filesup-local --json`

`codex plugin list --json`

The FilesUp entry must identify the verified local marketplace and report `installed: true` and `enabled: true`. Reuse an identical existing installation. Start a new session or use the client's supported reload when needed before verifying runtime tools. Do not require an additional UI Install click when the CLI has already installed the plugin successfully.

If no working CLI is available, use native plugin management or merge the FilesUp entry into the personal `~/.agents/plugins/marketplace.json`. Preserve its existing marketplace name and entries; if it is new, use name `filesup-local`. Set the source to `{ "source": "local", "path": "./.filesup/plugins/0.1.0/plugins/filesup" }` when using the suggested installation folder. This path is relative to the user-home marketplace root, not to its `.agents/plugins` subfolder.

For a client that lacks `plugin add`, enable FilesUp through native plugin management or merge the supported `[plugins."filesup@<marketplace-name>"]` table with `enabled = true` into the active user's Codex config (normally `~/.codex/config.toml`; respect a configured Codex home). Use `filesup-local` for the tracked downloaded marketplace, or the actual preserved name of a personal marketplace. Do not create duplicate TOML tables. A config entry alone does not prove the plugin is loaded. If that client requires a restart, new session or final Install click, leave it prepared and give that exact step to the user. Respect a refusal of UI automation; do not bypass it. Do not invent a `codex plugin install` command or copy files into the managed plugin cache.

### Claude Code

Use the installed CLI and confirm its help supports these commands:

`claude plugin marketplace add <absolute-extraction-root>`

`claude plugin install filesup@filesup-local --scope user`

Verify with `claude plugin list`. If working only in Claude Code's interactive UI, the equivalents are `/plugin marketplace add <absolute-extraction-root>` and `/plugin install filesup@filesup-local`. Start a new session or use the client's supported plugin reload when required. The Claude chat app uses its own Plugins or Connectors UI; do not write a Claude Code config and claim it installed in the chat app.

## Connect and verify

The remote MCP URL is `https://api.filesup.app/mcp`. Read `https://api.filesup.app/.well-known/oauth-protected-resource/mcp` to check availability. A 404 or unavailable endpoint means the public connection has not launched or is temporarily unavailable: finish the local preparation and report that connection is pending. Do not substitute another server.

When the plugin is loaded, start the client's built-in FilesUp OAuth flow. With a working Codex CLI, inspect `codex mcp list --json` to find the FilesUp server contributed by the installed plugin, confirm its URL is `https://api.filesup.app/mcp`, and use its exact reported name with `codex mcp login <filesup-server-name> --scopes shares:read,shares:write,files:write`. Do not create a duplicate standalone MCP entry just to authenticate the plugin. If the plugin server is not loaded yet, use the supported reload/new session or give the exact remaining step. Alternatives are Codex Connect/Login or Claude Code `/mcp` then FilesUp Authenticate. The user signs in and grants consent in the FilesUp browser page. Never ask for passwords, OTPs or tokens in chat, read browser sessions, fabricate bearer tokens or bypass consent. Respect client approval requirements.

Verify the connection with the read-only `filesup_account` tool. Do not create a share, publish a message or upload a file as an installation test. Report the installation path, client configuration, whether the plugin actually loaded, whether authentication succeeded, and any exact remaining user action. Never report Connected based only on successful configuration.

An already-open conversation can retain its earlier tool catalog. A successful read-only account call in the native client does not inject FilesUp tools into this conversation. If `filesup_account` is absent from the assistant's actual available tools, report that installation and OAuth succeeded but the current conversation has not loaded the plugin. Use a supported plugin/tool reload when available; otherwise tell the user to start a new conversation. If a new conversation still lacks the tools, restart the Codex/ChatGPT app and start a new conversation with FilesUp enabled. Do not invent a tool name or ask the user to reinstall an already verified plugin.

## Official client references

- Codex: https://developers.openai.com/plugins/build/plugins
- Codex CLI commands: https://learn.chatgpt.com/docs/developer-commands
- Claude Code: https://code.claude.com/docs/en/discover-plugins
- FilesUp: https://filesup.app/en/mcp/
