Protege 🥚
Give your Rails app a colleague. Protege is a Rails engine for building an AI teammate that works inside your app — reachable by email, acting through the models and jobs you already have, on its own schedule. You build the colleague and point it at your preferred LLM.
It's a framework, not an LLM wrapper: the model is one swappable extension, and everything around it — an inbox, a memory of every conversation, tools over your own data, a schedule, guardrails, and an audit trail — is what Protege gives you. Email is the channel (Action Mailbox in, SMTP out); your Rails app is the workspace, reached through the tools you write.
📚 Read the docs → — new here? Start with Build The Scoop, the end-to-end tutorial, or What is Protege? for the mental model.
How it works
Inbound email → Action Mailbox → the harness assembles context through the persona's resolver chain → the model responds, optionally calling tools that reach into your app → the agent replies by email. The same path runs scheduled responsibilities, so an agent can also initiate work on its own. See the LOGI architecture.
Repository layout
This is a monorepo. Run commands from the directory you're changing.
| Path | What it is |
|---|---|
engine/ |
The protege gem — the Rails engine. Plain-Ruby core (lib/protege/), ActiveRecord models, mailboxes, and migrations. The source of truth. |
workspace/ |
A dev host Rails app that consumes the engine via path: "../engine". |
site/ |
User-facing documentation (VitePress), published to docs.protege.bot. |
Development
cd engine && bundle install && bundle exec rake test # engine gem (Minitest)
cd workspace && bin/dev # run the host app
cd site && npm install && npm run docs:dev # docsLicense
MIT © Sebastian Scholl