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