Documentation

Everything you need to go from zero to messaging your AI from your phone. For deep references, see the docs folder on GitHub.

Quick start

  1. Add the bot to a Discord channel you control.
  2. Generate a connection code on the setup page.
  3. Register Feri as an MCP server in your IDE (below).
  4. Verify the code: paste it in your IDE session, or run /verify <code> in Discord.
  5. Message your AI from your phone. It reads, acts, and replies.

Register the MCP server

Build the server (npm install && npm run build), then point your IDE's MCP config at the compiled entry point. For Kiro, that's .kiro/settings/mcp.json (workspace) or the user-level config.

{
  "mcpServers": {
    "feri": {
      "command": "node",
      "args": ["/absolute/path/to/feri/dist/index.js"]
    }
  }
}

No secrets go in mcp.json. Feri loads its own .env / config (including the connection code in relay mode) at boot. Use an absolute path to dist/index.js.

On a different IDE? The config file and root key vary (some use servers or context_servers instead of mcpServers). See Setup by IDE for the exact config per tool.

Install the skill + steering

Feri ships a skill and a steering file that tell your AI how and when to check for messages:

  • Skill: copy skill/feri.md into your agent's skills directory. It documents the tools and how to use them.
  • Steering: copy steering/feri.md into your steering directory. It sets the runtime priority order (stop handling, polling cadence, focus mode, response style).

That's the Kiro layout. On other IDEs there's one rules / instructions mechanism instead of separate skills and steering: paste both files into it and set it to always apply. Setup by IDE lists where that lives for each tool.

Connecting

Generate a code on /setup, then activate it from the channel you added the bot to. Either paste it when your IDE asks, or run /verify FERI-XXXX-XXXX-XXXX in Discord. One code binds one channel to one session. To disconnect, run /disconnect in the channel.

Supported IDEs

  • Kiro: fully supported and tested.
  • Any MCP-capable agent IDE: Cursor, Claude Code, Devin Desktop (formerly Windsurf), Google Antigravity, VS Code and Visual Studio (Copilot agent mode), Cline, Roo Code, Continue, Zed, JetBrains (Junie), Amazon Q, Goose, Trae, Augment, Warp.

See Setup by IDE for the exact MCP config file, root key, and where the skill and steering go on each one, plus the tools that aren't supported.

The requirement is simple: an agent that can register MCP servers and run a session loop that polls Feri between tasks. Tools with no MCP client (classic Copilot completions, Tabnine, legacy Codeium) are not supported.

Troubleshooting

Tools aren't appearing
The MCP server isn't registered or connected. Check you edited the right config (workspace .kiro/settings/mcp.json vs user-level), the path to dist/index.js is absolute and built, then reconnect the server.
ping always returns 0
The relay isn't seeing your messages. Make sure the code is active (verified, not just generated), and that the relay is polling. If you self-host the gateway, confirm it's running.
The code won't verify
It likely expired (10-minute window) or is already active. Generate a fresh one, or run /disconnect first if the channel is already linked.
Polling hangs on Windows
Wait with Start-Sleep -Seconds <n>, not timeout. timeout needs an interactive console and fails in an agent shell.

Deep dives

Full references live in the repo's docs/ folder:

  • Architecture, cloud API, and the verification flow
  • Response styles and the platform roadmap
  • Self-hosting the relay and gateway bot

Browse docs on GitHub View the repo