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.
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
HostedTrigger Sage once in Discord, let a server admin use the setup card, and the hosted bot is ready for the whole server.
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 01Add the hosted Sage bot to your Discord server and start the setup flow in one click.
Activate Your Server
STEP 02Trigger Sage once, then let a server admin use the setup card to activate Hosted Sage for everyone.
Start Talking
STEP 03Mention @Sage in any channel. It remembers context, calls tools when helpful, and keeps the flow chat-first.
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.
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.
Early-access experiences from the Sage community
Bleeding-Edge Tech Stack
14 core technologies. Zero compromises. Every layer is connected and purpose-built for agentic AI orchestration.
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.
Create a new text or structured-text artifact.
functiondiscord_artifact_create_text()Search attachment text in the current channel.
functiondiscord_artifact_find_channel_attachments()Search attachment text across the guild.
functiondiscord_artifact_find_guild_attachments()Retrieve one Discord artifact and its latest revision metadata.
functiondiscord_artifact_get()List stored Discord artifacts in the active guild or origin channel.
functiondiscord_artifact_list()List cached attachments in the current channel.
functiondiscord_artifact_list_channel_attachments()List cached attachments across the guild.
functiondiscord_artifact_list_guild_attachments()List recent revisions for one artifact.
functiondiscord_artifact_list_revisions()Publish the latest artifact revision into a Discord channel or thread.
functiondiscord_artifact_publish()Read cached attachment text in pages.
functiondiscord_artifact_read_attachment()Create a new revision for an existing artifact from text or an existing attachment.
functiondiscord_artifact_replace()Turn an ingested Discord attachment into a durable Sage artifact revision.
functiondiscord_artifact_stage_attachment()Fetch rolling and long-term summary context for the current channel.
functiondiscord_context_get_channel_summary()Retrieve social graph relationships for a user.
functiondiscord_context_get_social_graph()Show the top interaction pairs in this server.
functiondiscord_context_get_top_relationships()Fetch the best-effort personalization profile for a user.
functiondiscord_context_get_user_profile()Retrieve voice participation analytics.
functiondiscord_context_get_voice_analytics()Retrieve recent voice session summaries.
functiondiscord_context_get_voice_summaries()Search archived summary context for the current channel.
functiondiscord_context_search_channel_summary_archives()Clear the dedicated artifact vault channel override.
functiondiscord_governance_clear_artifact_vault_channel()Clear the dedicated moderation log channel override.
functiondiscord_governance_clear_mod_log_channel()Clear the dedicated governance review channel.
functiondiscord_governance_clear_review_channel()Clear the current server-wide API key.
functiondiscord_governance_clear_server_api_key()Disable automatic thread-on-invoke routing for a channel.
functiondiscord_governance_disable_invoke_thread_channel()Route fresh Sage invokes in a channel into a public message thread.
functiondiscord_governance_enable_invoke_thread_channel()Inspect where Sage publishes default artifact vault posts.
functiondiscord_governance_get_artifact_vault_status()Inspect the shared host-level Codex auth status and fallback behavior.
functiondiscord_governance_get_host_auth_status()Inspect which channels auto-route Sage invokes into public message threads.
functiondiscord_governance_get_invoke_thread_status()Inspect where Sage posts default moderation log alerts.
functiondiscord_governance_get_mod_log_status()Inspect where governance review cards are routed.
functiondiscord_governance_get_review_status()Read the current guild Sage Persona instructions.
functiondiscord_governance_get_server_instructions()Check the current server-wide API key status.
functiondiscord_governance_get_server_key_status()Post the current host auth status in the active channel.
functiondiscord_governance_send_host_auth_status_card()Send an interactive server-key setup card.
functiondiscord_governance_send_key_setup_card()Route default artifact publications to a specific text channel or thread.
functiondiscord_governance_set_artifact_vault_channel()Route default moderation log alerts to a specific text channel or thread.
functiondiscord_governance_set_mod_log_channel()Route governance review cards to a specific text channel.
functiondiscord_governance_set_review_channel()Submit an admin request to update the guild Sage Persona.
functiondiscord_governance_update_server_instructions()Retrieve messages before and after a given message ID.
functiondiscord_history_get_context()Show recent messages from a user across the guild.
functiondiscord_history_get_user_timeline()Search raw message history across the guild.
functiondiscord_history_search_guild()Search channel message history.
functiondiscord_history_search_history()Search channel history and expand context around the best match.
functiondiscord_history_search_with_context()Acknowledge a moderation case for follow-up.
functiondiscord_moderation_ack_case()Add a moderator note to a moderation case.
functiondiscord_moderation_add_case_note()Disable an existing moderation policy.
functiondiscord_moderation_disable_policy()Retrieve one moderation case and its notes.
functiondiscord_moderation_get_case()Retrieve one guild member.
functiondiscord_moderation_get_member()Retrieve moderation history for one guild member.
functiondiscord_moderation_get_member_history()Resolve permissions for a user or role in a specific channel.
functiondiscord_moderation_get_permission_snapshot()Retrieve one moderation policy by id or name.
functiondiscord_moderation_get_policy()List AutoMod rules for the active guild.
functiondiscord_moderation_list_automod_rules()List recent moderation cases for the guild.
functiondiscord_moderation_list_cases()List guild members for inspection, moderation context, or membership lookup.
functiondiscord_moderation_list_members()List Sage moderation policies and imported external AutoMod inventory.
functiondiscord_moderation_list_policies()Resolve or void a moderation case.
functiondiscord_moderation_resolve_case()Submit a moderation or enforcement request.
functiondiscord_moderation_submit_action()Create or update an autonomous moderation policy.
functiondiscord_moderation_upsert_policy()Cancel a scheduled reminder or scheduled Sage job.
functiondiscord_schedule_cancel_task()Clone an existing scheduled task.
functiondiscord_schedule_clone_task()Retrieve one scheduled task and its recent execution history.
functiondiscord_schedule_get_task()List configured scheduled reminders and scheduled Sage jobs.
functiondiscord_schedule_list_tasks()Pause an active scheduled task.
functiondiscord_schedule_pause_task()Resume a paused scheduled task.
functiondiscord_schedule_resume_task()Run a scheduled task immediately.
functiondiscord_schedule_run_now()Skip the next scheduled run for a task.
functiondiscord_schedule_skip_next()Create or update a scheduled reminder or scheduled Sage job.
functiondiscord_schedule_upsert_task()Add an existing guild role to a member with admin approval.
functiondiscord_spaces_add_member_role()Add a reaction to a Discord message.
functiondiscord_spaces_add_reaction()Add a member to a thread.
functiondiscord_spaces_add_thread_member()Archive a thread explicitly.
functiondiscord_spaces_archive_thread()Create a new channel or category.
functiondiscord_spaces_create_channel()Create a forum post in a forum channel.
functiondiscord_spaces_create_forum_post()Create a new invite for a channel.
functiondiscord_spaces_create_invite()Create a poll in Discord.
functiondiscord_spaces_create_poll()Create a new guild role with Discord admin approval and server context.
functiondiscord_spaces_create_role()Create a scheduled event for the guild.
functiondiscord_spaces_create_scheduled_event()Create a Discord thread.
functiondiscord_spaces_create_thread()Delete a message with admin approval.
functiondiscord_spaces_delete_message()Delete an existing guild role with admin approval and guild context.
functiondiscord_spaces_delete_role()Delete a scheduled event for the guild.
functiondiscord_spaces_delete_scheduled_event()Edit an existing channel.
functiondiscord_spaces_edit_channel()Edit a message with admin approval.
functiondiscord_spaces_edit_message()Edit an existing guild role, including name, color, or permissions, with approval.
functiondiscord_spaces_edit_role()Retrieve detailed metadata for one guild channel.
functiondiscord_spaces_get_channel()Generate an OAuth2 invite URL for the bot.
functiondiscord_spaces_get_invite_url()Retrieve one scheduled event for the active guild.
functiondiscord_spaces_get_scheduled_event()Retrieve detailed metadata for one thread.
functiondiscord_spaces_get_thread()Join an existing Discord thread as Sage so later thread-scoped actions can proceed.
functiondiscord_spaces_join_thread()Leave an existing Discord thread as Sage after thread-scoped work is complete.
functiondiscord_spaces_leave_thread()List accessible guild channels and categories.
functiondiscord_spaces_list_channels()List active guild or channel invites.
functiondiscord_spaces_list_invites()List guild roles with compact permission summaries.
functiondiscord_spaces_list_roles()List scheduled events for the active guild.
functiondiscord_spaces_list_scheduled_events()List active or archived guild threads.
functiondiscord_spaces_list_threads()Pin a message with admin approval.
functiondiscord_spaces_pin_message()Remove a role from a member.
functiondiscord_spaces_remove_member_role()Remove Sage’s own reaction from a Discord message.
functiondiscord_spaces_remove_self_reaction()Remove a member from a thread.
functiondiscord_spaces_remove_thread_member()Reopen an archived thread explicitly.
functiondiscord_spaces_reopen_thread()Revoke an invite by its code.
functiondiscord_spaces_revoke_invite()Unpin a message with admin approval.
functiondiscord_spaces_unpin_message()Replace the applied tags on a forum thread.
functiondiscord_spaces_update_forum_tags()Update a scheduled event for the guild.
functiondiscord_spaces_update_scheduled_event()Rename or change archive or lock settings for a thread.
functiondiscord_spaces_update_thread()Show the bot voice connection status for this guild.
functiondiscord_voice_get_status()Join the invoker’s current voice channel.
functiondiscord_voice_join_current_channel()Leave the active guild voice channel.
functiondiscord_voice_leave()Watch Sage Execute
Select a payload. Watch the agentic cognitive loop chain tools in real-time.
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
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
Agentic Prompt Refinement
Sage rewrites your image prompt using conversation context before calling the API. "Make it cyberpunk" just works.
basic result
cinematic resultSage uses the last ~10 messages of context + reply references to enrich every image prompt automatically
Premium Review Flow
Compact status where the request starts. Rich review where admins already work. No slash-command queue theater.
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.
Beyond Traditional Bots
Sage isn't a chatbot with a bigger command list. It's a cognitive runtime that reasons, remembers, and acts autonomously.
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