Skip to content
gcrft123Public

About

The AI discord bot that feels like a living member of your server with persitent memory, a knowledge base, an extensions marketplace, and much more.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Olisar

Olisar

A self-hosted AI Discord bot that feels like a living member of your server, with a private admin dashboard, persistent memory, and a teachable knowledge base.

Landing page →  ·  Download  ·  Docs


Olisar reads the channels you allow, remembers context, builds a sense of who people are, and chimes in with its own personality — by name, by @mention, by reply, in DMs, through /ask, or unprompted when it can genuinely help. Everything is configured from a React admin dashboard (Discord-OAuth, admins only), and it runs on the free tier of Google Gemini, or on a key with billing on if you'd rather pay for higher limits.

You run it yourself: one desktop app on your own machine hosts the bot, the API, and the dashboard together. There's no server to rent and no cloud, and all of your data stays local.

Highlights

  • Feels alive — persona you author, a private impression it forms of each member, and four ways to engage (name trigger, @mention/reply, DM, /ask) plus optional proactive chiming with cooldowns and quiet hours.
  • Remembers — rolling channel summaries, semantic recall, durable facts, and a server-wide message search index ("where was that link posted?") that answers with a jump-link. Members control their own data with /privacy and /forget-me.
  • Learns — teach it web pages, whole sites (crawled), and uploaded docs (PDF/DOCX/TXT/MD); it chunks + embeds them in the background and draws on them in its own voice. A small glossary carries your community's dialect into every reply.
  • Sees & draws — looks at posted images, describes them for search, and generates images (optional: Gemini with billing on, or Cloudflare Workers AI).
  • Fully customizable — persona, behavior, per-channel modes, role-based access, knowledge, extensions, and every system and command reply (with {placeholder} templates), all from the dashboard.
  • Extensible — toggle packaged features (dice, calculator, concise mode) and a full Star Citizen pack (live trade/ship/location tools + /citizen profiles).
  • Secure by design — Discord-OAuth login, admins only, with live permission re-checks: lose Manage Server and your console access is revoked on the next request.
  • Free to run — each install uses your own Discord bot and your own API keys, and Gemini's free tier is enough; it falls back across a ranked chain of Gemini models when one is rate-limited. Turn on billing for the key for far higher limits; Olisar notices, raises its own caps to match, and shows what it's spending, held to a monthly budget if you set one.

Get started

👉 DOCUMENTATION.md — the complete documentation: install the desktop app, create your Discord application, the first-run wizard, optional remote access, every dashboard setting, knowledge & memory, extensions, privacy, and building from source.

In short:

  1. Install the desktop app (or run it from source — see the setup guide).
  2. Create a Discord application in the Developer Portal.
  3. Launch Olisar and complete the first-run wizard: paste the bot token and client secret, add the redirect URL it shows, press Add to Discord, and paste a Gemini key (a free one is enough). It turns on the intents the bot needs and notices when the bot joins your server.
  4. Sign in to the console with the Discord account that owns the application, or one that has Manage Server.

The same documentation is also available inside the dashboard, under Docs.

Remote access

By default the console is local-only. To let other admins sign in from anywhere, Olisar can publish the dashboard over Tailscale Funnel — a free, stable https://…ts.net address with no domain and no port-forwarding required. The operator needs a free Tailscale account; the admins who sign in don't need Tailscale at all. See the documentation.

Updates

The desktop app checks for a newer release on launch and every few hours, and on demand from the tray → Check for Updates…. Install & Restart installs it in place; on platforms that can't self-install yet, it opens the installer download instead. Maintainers: see RELEASING.md for how to cut a release.

How it's built

  • Python 3.13 (managed with uv) — discord.py bot + FastAPI, run together on one asyncio loop.
  • SQLite with sqlite-vec + FTS5 for hybrid semantic + keyword search; all data is local.
  • Google Gemini (free tier, or billing on) for chat, embeddings, vision, and web-grounded search, plus image generation with billing on; Cloudflare Workers AI for images otherwise.
  • React + Vite + TypeScript dashboard, served same-origin by the backend.
  • Electron desktop shell (macOS + Windows) bundling the PyInstaller backend, the dashboard, sqlite-vec, and a Tailscale Funnel helper.
olisar/    shared core — db models, config, runtime, persona, memory, knowledge, gemini
bot/       the discord.py process (cogs: conversation, members, slash, presence, …)
api/       FastAPI admin backend (auth, routers) — serves the dashboard same-origin
web/       React dashboard (Vite + TypeScript)
desktop/   Electron shell, PyInstaller spec, Tailscale Funnel sidecar
scripts/   init_db.py and other one-offs
arena/     live Discord testbed for iterating on Olisar's prompts (dev only)

Developing Olisar's behaviour

arena/ is a testbed for the parts of Olisar that unit tests can't reach: how it sounds, when it decides to speak, and whether its guardrails hold. It runs a second Olisar instance against a throwaway Discord server populated by bots that play members, scores the transcripts, and gates every prompt change on a fixed red-team suite.

It is development tooling — nothing in it ships, and the two hooks it needs in the core (OLISAR_PEER_BOT_IDS, OLISAR_PROMPT_OVERRIDES) are inert when unset.

Privacy

Everything Olisar knows lives in a single local database on the operator's machine. There is no Olisar cloud. Opted-out members are never recorded or indexed; /forget-me removes a person entirely; /self-destruct wipes everything learned while keeping the persona and settings. The all-channel search index is an admin's explicit choice and is disclosed by /privacy. See the in-dashboard Privacy doc for the full picture.

License

Free and open source.

About

The AI discord bot that feels like a living member of your server with persitent memory, a knowledge base, an extensions marketplace, and much more.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages