AGENTS / GITHUB / roger
githubinferredactive

roger

provenance:github:EMSERO/roger

AI agent gateway — multi-provider LLM router with Telegram, Discord, Slack channels, browser automation, and cron scheduling. Single Go binary.

View Source ↗First seen 1mo agoNot yet hireable
README
<p align="center">
  <img src="logo.svg" alt="Roger" width="350">
</p>

[![CI](https://github.com/EMSERO/roger/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/EMSERO/roger/actions/workflows/ci.yml)
[![Release](https://img.shields.io/github/v/release/EMSERO/roger)](https://github.com/EMSERO/roger/releases)
[![Go Report Card](https://goreportcard.com/badge/github.com/EMSERO/roger)](https://goreportcard.com/report/github.com/EMSERO/roger)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

**You give the task. Roger handles it.**

Roger is a self-hosted AI agent gateway for teams that need to own their infrastructure. It connects your channels to your models, runs your tools, and gets work off your desk — on your hardware, under your control, with no cloud dependency.

Single Go binary. 15MB. Runs as a systemd service. Works while you sleep.

```
┌─────────────┐     ┌──────────────────────────────────────────┐     ┌──────────────┐
│  Telegram    │     │                Roger                     │     │  Anthropic   │
│  Discord     │────▶│                                          │────▶│  OpenAI      │
│  Slack       │     │  Agent Loop ─ Tools ─ Sessions ─ Cron   │     │  Copilot     │
│  HTTP API    │◀────│                                          │◀────│  Ollama      │
│  Webhooks    │     │  MCP Server ─ Gateway ─ Orchestrator     │     │  OpenRouter  │
└─────────────┘     └──────────────┬───────────────────────────┘     └──────────────┘
                                   │
                           ┌───────▼───────┐
                           │    Eidetic     │
                           │    Semantic    │
                           │    Memory      │
                           └───────────────┘
```

---

## Why Roger?

**You can't always use a managed agent.** Regulated industries, air-gapped networks, defense systems, data sovereignty requirements — sometimes the work has to stay on your hardware. Roger gives you the same capabilities as managed AI agent platforms, fully self-hosted.

**Model independence.** Route to Anthropic, OpenAI, GitHub Copilot, Ollama, OpenRouter, Groq, or any OpenAI-compatible endpoint. Swap providers without changing your workflow. Run local models when you need to.

**Work off the desk, not onto it.** Roger doesn't generate briefings for you to read. It takes tasks and finishes them. Cron jobs run overnight. Multi-agent orchestration breaks complex work into parallel subtasks. You check in when you're ready.

**Auditable by design.** CycloneDX SBOM on every release. govulncheck and gosec on every build. Six direct dependencies. One binary to audit.

---

## Quick Start

```bash
# Install from GitHub Releases (deb)
curl -LO https://github.com/EMSERO/roger/releases/latest/download/roger_0.6.0_linux_amd64.deb
sudo dpkg -i roger_0.6.0_linux_amd64.deb

# First-time setup
roger init

# Run
roger

# As a systemd user service
systemctl --user enable --now roger

# Update
roger update
```

Or build from source:

```bash
go build -o roger ./cmd/roger
go build -o roger-mcp ./cmd/roger-mcp
```

Requires Go 1.26+.

---

## What Roger Does

**Multi-provider model routing** with automatic fallback. Primary model goes down? Roger falls through to the next configured provider with exponential backoff and cooldown tracking.

**Three-tier multi-agent orchestration.** Main agent handles simple requests. Orchestrator plans complex work as a JSON task graph. Specialists execute in parallel with dependency ordering and failure handling.

**Persistent sessions** with JSONL history, TTL, token-aware pruning, daily/idle resets, and LLM-powered context compaction.

**Cron scheduler** with `@daily`, `@hourly`, `@every 1h`, `HH:MM` specs, per-job model/timeout overrides, deterministic stagger, and result delivery to channels.

**Tool execution** including shell commands (with destructive command confirmation), web search/fetch (with SSRF protection), file I/O, browser automation (chromedp), and semantic memory.

**Semantic memory** via [Eidetic](https://github.com/EMSERO/eidetic) — self-hosted on PostgreSQL + pgvector. Your agents remember things across conversations, forever, on your hardware.

**Hot-reload** via fsnotify — edit `config.json` and changes apply without restart.

---

## MCP Server

Roger ships `roger-mcp`, a standalone MCP server binary that exposes its tools to Claude Code, Claude Desktop, Cursor, and any MCP-compatible client.

```json
{
  "mcpServers": {
    "roger": {
      "command": "/usr/bin/roger-mcp",
      "args": ["--config", "~/.roger/config.json"]
    }
  }
}
```

**Available tools:** browser automation (navigate, screenshot, click, type, eval, scrape), semantic memory (search, append), web search/fetch, file I/O, notifications.

---

## Channels

Roger connects to your messaging platforms as a persistent agent:

- **Telegram** — bot with debounce queue, reactions, pairing, slash commands
- **Discord** — bot with thread support
- **Slack** — Socket Mode bot
- **HTTP API** — OpenAI-compatible `/v1/chat/completions` endpoint
- **Webhooks** — inbound event triggers per session

---

## Security

- **govulncheck** on every PR and release
- **gosec** static analysis
- **CycloneDX SBOM** attached to every release artifact
- **Destructive command confirmation** — blocklist intercepts dangerous commands before execution
- **SSRF protection** — blocks requests to private, loopback, and link-local addresses
- **Gateway auth** — bearer token required, auto-generated if not configured
- **Rate limiting** — per-IP token-bucket limiting
- **Telegram pairing** — random 6-digit code required

---

## Eidetic Integration

```json
{
  "eidetic": {
    "enabled": true,
    "baseURL": "http://localhost:7700",
    "apiKey": "your-key"
  }
}
```

[Eidetic](https://github.com/EMSERO/eidetic) gives your agents persistent semantic memory — search by meaning, not just keywords. Self-hosted on PostgreSQL + pgvector + Ollama. No cloud required.

---

## Migrating from OpenClaw

Roger can import your existing OpenClaw configuration and sessions. Run `roger --migrate` or `roger init` to migrate automatically.

---

## Acknowledgements

Special thanks to [Nate B Jones](https://www.youtube.com/@NateBJones) whose videos on AI agents and autonomous workflows helped inspire both Roger and Eidetic.

---

Built by [EMSERO](https://emsero.com) — software engineering for defense, federal, and commercial systems.

PUBLIC HISTORY

First discoveredMar 30, 2026

IDENTITY

inferred

Identity inferred from code signals. No PROVENANCE.yml found.

Is this yours? Claim it →

METADATA

platformgithub
first seenFeb 27, 2026
last updatedMar 29, 2026
last crawled18 days ago
version

README BADGE

Add to your README:

![Provenance](https://getprovenance.dev/api/badge?id=provenance:github:EMSERO/roger)