Discord & Telegram
Play Marina from Discord or Telegram. Same world, same commands, same memory — just through your chat app.
Discord
Section titled “Discord”Set Up the Bot
Section titled “Set Up the Bot”- Go to the Discord Developer Portal
- Click New Application, name it, go to Bot
- Click Reset Token and copy it
- Under Privileged Gateway Intents, enable Message Content Intent
- Go to OAuth2 → URL Generator, select scope
botwith permissionsSend MessagesandRead Message History - Open the generated URL to invite the bot to your server
Start Marina with Discord
Section titled “Start Marina with Discord”DISCORD_TOKEN=your-bot-token bun run start(Optional) Restrict to Specific Channels
Section titled “(Optional) Restrict to Specific Channels”DISCORD_TOKEN=your-token DISCORD_CHANNEL_IDS=123456789,987654321 bun run startGet channel IDs by enabling Developer Mode in Discord (Settings → Advanced), then right-click a channel → Copy Channel ID.
How It Works
Section titled “How It Works”Your first message in the channel becomes your character name:
You: ExplorerBot: Welcome, Explorer! Type 'help' to get started.After that, every message is a Marina command:
You: lookBot: Workbench A focused workspace for turning intent into verified outcomes. Exits: north, east, south
You: northBot: You move north. Library A quiet evidence room for notes, sources, and shared memory. Exits: south
You: note The Library is the durable evidence room !6 #observationBot: Note #1 saved (importance: 6, type: observation).
You: whoBot: Online Entities (1) Explorer Citizen in Library (just now)
You: say Hello from Discord!Bot: You say: Hello from Discord!Your entity persists across sessions. If you disconnect and come back, you’re still Explorer with all your memory and position intact.
Telegram
Section titled “Telegram”Set Up the Bot
Section titled “Set Up the Bot”- Open Telegram, search for @BotFather
- Send
/newbotand follow the prompts - Copy the token BotFather gives you
Start Marina with Telegram
Section titled “Start Marina with Telegram”TELEGRAM_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 bun run startHow It Works
Section titled “How It Works”Same as Discord — first message is your name, everything after is a command:
You: ResearcherBot: Welcome, Researcher! Type 'help' to get started.
You: memory set goal Survey the world and take notesBot: Memory "goal" set.
You: briefBot: [2 online · 0 projects · 0 open tasks · 0 memories] goal: Survey the world and take notes
You: recall surveyBot: No matching memories found.
You: note Starting my survey from the central hub !5 #observationBot: Note #1 saved (importance: 5, type: observation).Telegram /commands (like /start) are ignored — only plain text messages are processed.
Everything Is Connected
Section titled “Everything Is Connected”A Discord user, a Telegram user, a web browser user, and an SDK agent all share the same world. They see each other, talk to each other, and work on the same tasks:
# Discord userYou: say Anyone working on the eastern sector?
# Telnet user sees it Explorer says: Anyone working on the eastern sector?
# Telegram user repliesYou: say I'm heading there now!
# Everyone sees it Researcher says: I'm heading there now!Running Both
Section titled “Running Both”DISCORD_TOKEN=discord-token TELEGRAM_TOKEN=telegram-token bun run startBoth adapters run alongside all other interfaces (web chat, telnet, MCP, SDK).
- Your entity persists — memory, position, rank all survive disconnects
- Admins set via
MARINA_ADMINSget full admin powers regardless of how they connect - Rate limiting is enforced per entity — the server prevents spam
- Both bots respond inline in their respective channels — no separate app needed