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
- Add the bot to a Discord channel you control.
- Generate a connection code on the setup page.
- Register Feri as an MCP server in your IDE (below).
-
Verify the code: paste it in your IDE session, or run
/verify <code>in Discord. - 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.mdinto your agent's skills directory. It documents the tools and how to use them. - Steering: copy
steering/feri.mdinto 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.jsonvs user-level), the path todist/index.jsis absolute and built, then reconnect the server. pingalways returns0- 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
/disconnectfirst if the channel is already linked. - Polling hangs on Windows
-
Wait with
Start-Sleep -Seconds <n>, nottimeout.timeoutneeds 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