A background coding agent. Give it a prompt, walk away, get results.
Add API keys as environment variables:
export ANTHROPIC_API_KEY="your-api-key-here"
export GOOGLE_API_KEY="your-api-key-here"
export BRAVE_SEARCH_API_KEY="your-api-key-here" # Optional, enables web searchTo interact with the agent through Discord, set up a Discord bot and run the Discord channel:
-
Create a Discord application and bot at the Discord Developer Portal.
-
Under Bot, copy the bot token and enable the Message Content Intent (the channel also requires the
Guild MessagesandDirect Messagesintents). -
Invite the bot to your server with the
botscope and at least the following permissions:View Channels,Send Messages,Create Public Threads,Send Messages in Threads, andRead Message History. -
Export the bot token (and optionally an instance name) as environment variables:
export DISCORD_BOT_TOKEN="your-discord-bot-token"
-
Start NATS and the Discord channel alongside the runner:
make local-nats # Start NATS JetStream (in a separate terminal) make run-channel # Build and start the Discord channel make run-runner # Start the agent runner (in a separate terminal)
Or start everything (NATS, channel, runner, and web UI) at once:
make dev-all
-
In Discord, mention the bot (
@your-bot your prompt) in any channel it can read. The channel will create a thread for the conversation; reply inside the thread (mentioning the bot) to continue.
Execute go generate ./... to fetch the binary dependencies
To add MCP servers:
tinker mcp --server-cmd "my-server:npx @modelcontextprotocol/server-everything"