Open Source · MIT Licensed

Your Community's
Smartest Member
Just Arrived.

Sage remembers every conversation, acts before you ask, and runs on your infrastructure. A chat-first AI teammate for Discord — no command menus, no vendor lock-in.

115+ Autonomous Tools
14 Technologies
7 Pipeline Stages
#general
Ready
Message #general
Interactive demo showing Sage responding to a user question in Discord, with tool calls and streaming text.
Choose Your Path

Hosted Or Self-Hosted.

Sage supports two clear starting paths. Use the hosted bot and activate it in Discord, or self-host Sage against your own OpenAI-compatible provider.

🌸

Server-Key Activation

Hosted
☁️Current hosted Sage bot
🔑Server-wide key via setup card
🎁Free tier available
🎨Text, vision, image gen, voice

Trigger Sage once in Discord, let a server admin use the setup card, and the hosted bot is ready for the whole server.

60-Second Onboarding

Get Sage Live In Three Steps

Start with Hosted Sage in minutes, then move to deeper setup only if you want self-hosting and custom infrastructure.

Add Hosted Sage

STEP 01

Add the hosted Sage bot to your Discord server and start the setup flow in one click.

$discord.com/oauth2/authorize

Activate Your Server

STEP 02

Trigger Sage once, then let a server admin use the setup card to activate Hosted Sage for everyone.

Start Talking

STEP 03

Mention @Sage in any channel. It remembers context, calls tools when helpful, and keeps the flow chat-first.

# general
S
SageBotToday at 12:00 PM
Hello there. I am Sage, your chat-first AI teammate for this Discord community.
S
SageBotToday at 12:00 PM
Status: Waiting for activation
Talk to Sage once to open the setup card, or self-host Sage against your own provider.
Message #general
Star on GitHubOSS
⚡0+Native Tools
🧬0Core Technologies
🔗0Pipeline Stages
🧠OpenAI Compatible

Open source · Self-hosted · Zero data exfiltration

Why Sage?

Three pillars that make Sage fundamentally different from every other Discord bot.

🧠

Reasons, Not Just Responds

A 7-stage memory pipeline and graph-native reasoning layer give Sage genuine contextual recall — not keyword matching.

⚡

Acts Before You Ask

115+ autonomous tools activate proactively. Sage perceives intent, selects tools, and executes — zero-prompt automation.

🔒

Your Infrastructure, Your Data

Fully self-hosted with a provider-flexible OpenAI-compatible runtime. No vendor lock-in, zero data exfiltration.

Community Voices

What Teams Are Saying

❝

Sage figured out what we were working on from our voice chat and pulled up the relevant docs before anyone asked. It's like having a team member who never misses a meeting.

C
Community AdminDiscord Server · 500+ members

Early-access experiences from the Sage community

0+
Native Tools
0
Prisma Tables
0
Technologies
0
Search Providers
✓
OpenAI Compatible
Neural Core Architecture

Bleeding-Edge Tech Stack

14 core technologies. Zero compromises. Every layer is connected and purpose-built for agentic AI orchestration.

Engine Context
Node.js
Node.js
Single-agent runtime with TypeScript (v5.9)
LangGraph
Graph-native agentic orchestration framework
discord.js
discord.js
Discord gateway & voice bindings
Docker
Docker
Container orchestration & networking
Zod
Zod
Strict schema validation for tool inputs
Storage & Events
PostgreSQL
PostgreSQL
Primary data store — 17 tables, pgvector
Memgraph
Real-time graph DB for social relations
Prisma
Prisma
Type-safe ORM with auto-migrations
Redpanda
Kafka-compliant event streaming queue
S
SAGERUNTIME
Intelligence Layer
Zod
OpenAI-Compatible APIs
Provider-flexible chat layer for hosted or self-hosted deployments
SearXNG
SearXNG
Privacy-first self-hosted meta-search engine
Crawl4AI
AI-powered web scraper for deep RAG
HuggingFace
HuggingFace
Local feature extraction & embeddings
Apache Tika
Apache Tika
Universal document & file text extraction
Live Component Registry

115 Native Tools. Zero Plugins.

Start with a preview of Sage’s core surfaces, then expand any subsystem when you want the full runtime map.

Discord Artifact Create Textdiscord

Create a new text or structured-text artifact.

functiondiscord_artifact_create_text()
Discord Files Find Channeldiscord

Search attachment text in the current channel.

functiondiscord_artifact_find_channel_attachments()
Discord Files Find Serverdiscord

Search attachment text across the guild.

functiondiscord_artifact_find_guild_attachments()
Discord Artifact Getdiscord

Retrieve one Discord artifact and its latest revision metadata.

functiondiscord_artifact_get()
Discord Artifact Listdiscord

List stored Discord artifacts in the active guild or origin channel.

functiondiscord_artifact_list()
Discord Files List Channeldiscord

List cached attachments in the current channel.

functiondiscord_artifact_list_channel_attachments()
Discord Files List Serverdiscord

List cached attachments across the guild.

functiondiscord_artifact_list_guild_attachments()
Discord Artifact List Revisionsdiscord

List recent revisions for one artifact.

functiondiscord_artifact_list_revisions()
Discord Artifact Publishdiscord

Publish the latest artifact revision into a Discord channel or thread.

functiondiscord_artifact_publish()
Discord Files Read Attachmentdiscord

Read cached attachment text in pages.

functiondiscord_artifact_read_attachment()
Discord Artifact Replacediscord

Create a new revision for an existing artifact from text or an existing attachment.

functiondiscord_artifact_replace()
Discord Artifact Stage Attachmentdiscord

Turn an ingested Discord attachment into a durable Sage artifact revision.

functiondiscord_artifact_stage_attachment()
Discord Context Get Channel Summarydiscord

Fetch rolling and long-term summary context for the current channel.

functiondiscord_context_get_channel_summary()
Discord Context Get Social Graphdiscord

Retrieve social graph relationships for a user.

functiondiscord_context_get_social_graph()
Discord Context Get Top Relationshipsdiscord

Show the top interaction pairs in this server.

functiondiscord_context_get_top_relationships()
Discord Context Get User Profilediscord

Fetch the best-effort personalization profile for a user.

functiondiscord_context_get_user_profile()
Discord Context Get Voice Analyticsdiscord

Retrieve voice participation analytics.

functiondiscord_context_get_voice_analytics()
Discord Context Get Voice Summariesdiscord

Retrieve recent voice session summaries.

functiondiscord_context_get_voice_summaries()
Discord Context Search Channel Summary Archivesdiscord

Search archived summary context for the current channel.

functiondiscord_context_search_channel_summary_archives()
Discord Admin Clear Artifact Vault Channeldiscord

Clear the dedicated artifact vault channel override.

functiondiscord_governance_clear_artifact_vault_channel()
Discord Admin Clear Mod Log Channeldiscord

Clear the dedicated moderation log channel override.

functiondiscord_governance_clear_mod_log_channel()
Discord Admin Clear Governance Review Channeldiscord

Clear the dedicated governance review channel.

functiondiscord_governance_clear_review_channel()
Discord Admin Clear Server Api Keydiscord

Clear the current server-wide API key.

functiondiscord_governance_clear_server_api_key()
Discord Admin Disable Invoke Thread Channeldiscord

Disable automatic thread-on-invoke routing for a channel.

functiondiscord_governance_disable_invoke_thread_channel()
Discord Admin Enable Invoke Thread Channeldiscord

Route fresh Sage invokes in a channel into a public message thread.

functiondiscord_governance_enable_invoke_thread_channel()
Discord Admin Get Artifact Vault Statusdiscord

Inspect where Sage publishes default artifact vault posts.

functiondiscord_governance_get_artifact_vault_status()
Discord Admin Get Host Auth Statusdiscord

Inspect the shared host-level Codex auth status and fallback behavior.

functiondiscord_governance_get_host_auth_status()
Discord Admin Get Invoke Thread Statusdiscord

Inspect which channels auto-route Sage invokes into public message threads.

functiondiscord_governance_get_invoke_thread_status()
Discord Admin Get Mod Log Statusdiscord

Inspect where Sage posts default moderation log alerts.

functiondiscord_governance_get_mod_log_status()
Discord Admin Get Governance Review Statusdiscord

Inspect where governance review cards are routed.

functiondiscord_governance_get_review_status()
Discord Context Get Server Instructionsdiscord

Read the current guild Sage Persona instructions.

functiondiscord_governance_get_server_instructions()
Discord Admin Get Server Key Statusdiscord

Check the current server-wide API key status.

functiondiscord_governance_get_server_key_status()
Discord Admin Send Host Auth Status Carddiscord

Post the current host auth status in the active channel.

functiondiscord_governance_send_host_auth_status_card()
Discord Admin Send Key Setup Carddiscord

Send an interactive server-key setup card.

functiondiscord_governance_send_key_setup_card()
Discord Admin Set Artifact Vault Channeldiscord

Route default artifact publications to a specific text channel or thread.

functiondiscord_governance_set_artifact_vault_channel()
Discord Admin Set Mod Log Channeldiscord

Route default moderation log alerts to a specific text channel or thread.

functiondiscord_governance_set_mod_log_channel()
Discord Admin Set Governance Review Channeldiscord

Route governance review cards to a specific text channel.

functiondiscord_governance_set_review_channel()
Discord Admin Update Server Instructionsdiscord

Submit an admin request to update the guild Sage Persona.

functiondiscord_governance_update_server_instructions()
Discord Messages Get Contextdiscord

Retrieve messages before and after a given message ID.

functiondiscord_history_get_context()
Discord Messages Get User Timelinediscord

Show recent messages from a user across the guild.

functiondiscord_history_get_user_timeline()
Discord Messages Search Guilddiscord

Search raw message history across the guild.

functiondiscord_history_search_guild()
Discord Messages Search Historydiscord

Search channel message history.

functiondiscord_history_search_history()
Discord Messages Search With Contextdiscord

Search channel history and expand context around the best match.

functiondiscord_history_search_with_context()
Discord Moderation Acknowledge Casediscord

Acknowledge a moderation case for follow-up.

functiondiscord_moderation_ack_case()
Discord Moderation Add Case Notediscord

Add a moderator note to a moderation case.

functiondiscord_moderation_add_case_note()
Discord Admin Disable Moderation Policydiscord

Disable an existing moderation policy.

functiondiscord_moderation_disable_policy()
Discord Moderation Get Casediscord

Retrieve one moderation case and its notes.

functiondiscord_moderation_get_case()
Discord Server Get Memberdiscord

Retrieve one guild member.

functiondiscord_moderation_get_member()
Discord Moderation Get Member Historydiscord

Retrieve moderation history for one guild member.

functiondiscord_moderation_get_member_history()
Discord Server Get Permission Snapshotdiscord

Resolve permissions for a user or role in a specific channel.

functiondiscord_moderation_get_permission_snapshot()
Discord Server Get Moderation Policydiscord

Retrieve one moderation policy by id or name.

functiondiscord_moderation_get_policy()
Discord Server List Automod Rulesdiscord

List AutoMod rules for the active guild.

functiondiscord_moderation_list_automod_rules()
Discord Server List Moderation Casesdiscord

List recent moderation cases for the guild.

functiondiscord_moderation_list_cases()
Discord Server List Membersdiscord

List guild members for inspection, moderation context, or membership lookup.

functiondiscord_moderation_list_members()
Discord Server List Moderation Policiesdiscord

List Sage moderation policies and imported external AutoMod inventory.

functiondiscord_moderation_list_policies()
Discord Moderation Resolve Casediscord

Resolve or void a moderation case.

functiondiscord_moderation_resolve_case()
Discord Admin Submit Moderationdiscord

Submit a moderation or enforcement request.

functiondiscord_moderation_submit_action()
Discord Admin Upsert Moderation Policydiscord

Create or update an autonomous moderation policy.

functiondiscord_moderation_upsert_policy()
Discord Admin Cancel Scheduled Taskdiscord

Cancel a scheduled reminder or scheduled Sage job.

functiondiscord_schedule_cancel_task()
Discord Schedule Clone Taskdiscord

Clone an existing scheduled task.

functiondiscord_schedule_clone_task()
Discord Server Get Scheduled Taskdiscord

Retrieve one scheduled task and its recent execution history.

functiondiscord_schedule_get_task()
Discord Server List Scheduled Tasksdiscord

List configured scheduled reminders and scheduled Sage jobs.

functiondiscord_schedule_list_tasks()
Discord Schedule Pause Taskdiscord

Pause an active scheduled task.

functiondiscord_schedule_pause_task()
Discord Schedule Resume Taskdiscord

Resume a paused scheduled task.

functiondiscord_schedule_resume_task()
Discord Schedule Run Nowdiscord

Run a scheduled task immediately.

functiondiscord_schedule_run_now()
Discord Schedule Skip Nextdiscord

Skip the next scheduled run for a task.

functiondiscord_schedule_skip_next()
Discord Admin Upsert Scheduled Taskdiscord

Create or update a scheduled reminder or scheduled Sage job.

functiondiscord_schedule_upsert_task()
Discord Admin Add Member Rolediscord

Add an existing guild role to a member with admin approval.

functiondiscord_spaces_add_member_role()
Discord Messages Add Reactiondiscord

Add a reaction to a Discord message.

functiondiscord_spaces_add_reaction()
Discord Server Add Thread Memberdiscord

Add a member to a thread.

functiondiscord_spaces_add_thread_member()
Discord Admin Archive Threaddiscord

Archive a thread explicitly.

functiondiscord_spaces_archive_thread()
Discord Admin Create Channeldiscord

Create a new channel or category.

functiondiscord_spaces_create_channel()
Discord Admin Create Forum Postdiscord

Create a forum post in a forum channel.

functiondiscord_spaces_create_forum_post()
Discord Admin Create Invitediscord

Create a new invite for a channel.

functiondiscord_spaces_create_invite()
Discord Messages Create Polldiscord

Create a poll in Discord.

functiondiscord_spaces_create_poll()
Discord Admin Create Rolediscord

Create a new guild role with Discord admin approval and server context.

functiondiscord_spaces_create_role()
Discord Admin Create Scheduled Eventdiscord

Create a scheduled event for the guild.

functiondiscord_spaces_create_scheduled_event()
Discord Server Create Threaddiscord

Create a Discord thread.

functiondiscord_spaces_create_thread()
Discord Admin Delete Messagediscord

Delete a message with admin approval.

functiondiscord_spaces_delete_message()
Discord Admin Delete Rolediscord

Delete an existing guild role with admin approval and guild context.

functiondiscord_spaces_delete_role()
Discord Admin Delete Scheduled Eventdiscord

Delete a scheduled event for the guild.

functiondiscord_spaces_delete_scheduled_event()
Discord Admin Edit Channeldiscord

Edit an existing channel.

functiondiscord_spaces_edit_channel()
Discord Admin Edit Messagediscord

Edit a message with admin approval.

functiondiscord_spaces_edit_message()
Discord Admin Edit Rolediscord

Edit an existing guild role, including name, color, or permissions, with approval.

functiondiscord_spaces_edit_role()
Discord Server Get Channeldiscord

Retrieve detailed metadata for one guild channel.

functiondiscord_spaces_get_channel()
Discord Admin Get Invite Urldiscord

Generate an OAuth2 invite URL for the bot.

functiondiscord_spaces_get_invite_url()
Discord Server Get Scheduled Eventdiscord

Retrieve one scheduled event for the active guild.

functiondiscord_spaces_get_scheduled_event()
Discord Server Get Threaddiscord

Retrieve detailed metadata for one thread.

functiondiscord_spaces_get_thread()
Discord Server Join Threaddiscord

Join an existing Discord thread as Sage so later thread-scoped actions can proceed.

functiondiscord_spaces_join_thread()
Discord Server Leave Threaddiscord

Leave an existing Discord thread as Sage after thread-scoped work is complete.

functiondiscord_spaces_leave_thread()
Discord Server List Channelsdiscord

List accessible guild channels and categories.

functiondiscord_spaces_list_channels()
Discord Admin List Invitesdiscord

List active guild or channel invites.

functiondiscord_spaces_list_invites()
Discord Server List Rolesdiscord

List guild roles with compact permission summaries.

functiondiscord_spaces_list_roles()
Discord Server List Scheduled Eventsdiscord

List scheduled events for the active guild.

functiondiscord_spaces_list_scheduled_events()
Discord Server List Threadsdiscord

List active or archived guild threads.

functiondiscord_spaces_list_threads()
Discord Admin Pin Messagediscord

Pin a message with admin approval.

functiondiscord_spaces_pin_message()
Discord Admin Remove Member Rolediscord

Remove a role from a member.

functiondiscord_spaces_remove_member_role()
Discord Messages Remove Self Reactiondiscord

Remove Sage’s own reaction from a Discord message.

functiondiscord_spaces_remove_self_reaction()
Discord Server Remove Thread Memberdiscord

Remove a member from a thread.

functiondiscord_spaces_remove_thread_member()
Discord Admin Reopen Threaddiscord

Reopen an archived thread explicitly.

functiondiscord_spaces_reopen_thread()
Discord Admin Revoke Invitediscord

Revoke an invite by its code.

functiondiscord_spaces_revoke_invite()
Discord Admin Unpin Messagediscord

Unpin a message with admin approval.

functiondiscord_spaces_unpin_message()
Discord Admin Update Forum Tagsdiscord

Replace the applied tags on a forum thread.

functiondiscord_spaces_update_forum_tags()
Discord Admin Update Scheduled Eventdiscord

Update a scheduled event for the guild.

functiondiscord_spaces_update_scheduled_event()
Discord Server Update Threaddiscord

Rename or change archive or lock settings for a thread.

functiondiscord_spaces_update_thread()
Discord Voice Get Statusdiscord

Show the bot voice connection status for this guild.

functiondiscord_voice_get_status()
Discord Voice Join Current Channeldiscord

Join the invoker’s current voice channel.

functiondiscord_voice_join_current_channel()
Discord Voice Leavediscord

Leave the active guild voice channel.

functiondiscord_voice_leave()
Agentic execution trace

Watch Sage Execute

Select a payload. Watch the agentic cognitive loop chain tools in real-time.

Select PayloadSystem Ready
root@sage-core: ~
bash v4.2
➜
./sage --invoke "Sage, I keep getting a hydration mismatch error in my Next.js app. Can you help?"
Memory Pipeline

How Sage Builds Perfect Context

Every message triggers a 7-stage pipeline that assembles the ideal context window. Scroll to watch it flow.

📩

Raw Message

Discord event received

📝

Ring Buffer

Last N messages loaded from in-memory transcript

📊

Rolling Summary

LLM-generated channel summary injected

👤

User Profile

Long-term personalization narrative from PostgreSQL

🕸️

Social Graph

Dunbar layers + reciprocity from Memgraph GNN

🔧

Tool Queries

Dynamic tool calls fire: search, files, voice analytics

🤖

LLM Context

Complete context window assembled → sent to model

Multimodal Processing

Native Voice Intelligence

Sage doesn't just read, it listens. With a built-in transcription pipeline, Sage can join voice channels and recover high-signal context for real-time coordination.

  • ▹ Automatic Voice transcription
  • ▹ Summary-only session memory
  • ▹ Multi-user speaker separation
SAGE_VOICE: ACTIVE
Creative Intelligence

Agentic Prompt Refinement

Sage rewrites your image prompt using conversation context before calling the API. "Make it cyberpunk" just works.

User Prompt
"draw a cat"
Basic cat resultbasic result
Agentic-Refined Prompt
"A photorealistic ginger tabby cat sitting on a rain-slicked cyberpunk window ledge at dusk, neon reflections in the wet surface, volumetric fog, cinematic lighting, 8K detail, shallow depth of field"
Cinematic cat resultcinematic result

Sage uses the last ~10 messages of context + reply references to enrich every image prompt automatically

Discord-Native Governance

Premium Review Flow

Compact status where the request starts. Rich review where admins already work. No slash-command queue theater.

#ops-floorListening
#governance-reviewWaiting
Sage routes the detailed reviewer card here when a governance action needs approval.
Deep Customization

Shape the Runtime

Sage scales from a simple copilot to a fully autonomous engineer. Try toggling features below.

Runtime Configuration

Tweak Sage's core behavior directly. See the payload update in real-time.

Long-Term MemoryGraphRAG summary injection
Voice TranscriptionActive audio stream processing
Max Context Tokens8192
Agent Mode
System Online
💾
Memgraph
Audio Rx
🧠
autonomous Engine
8192Context Tokens
Feature Comparison

Beyond Traditional Bots

Sage isn't a chatbot with a bigger command list. It's a cognitive runtime that reasons, remembers, and acts autonomously.

CapabilitySageTraditional
Autonomous Tool Execution
Graph-Native Social Intelligence
7-Stage Memory Pipeline
OpenAI-Compatible LLM API
Voice Channel Transcription
AI Image Generation
Conversational Configuration
Self-Hosted / Sovereign
Basic Moderation
Chat-First Triggers
Server-Wide File Intelligence
Integrated Web Search
Role Management

Compared against typical Discord bots like MEE6, Dyno, and Carl-bot

Ready to Get Live?

Start free with the hosted bot in under 60 seconds. Scale to self-hosting when you're ready — zero lock-in.

MIT Licensed · 115+ tools · Fully open source