asmltr¶
One channel-agnostic AI-assistant backend behind every chat surface — with a live insights dashboard.
Run one assistant and let people reach it from Discord, Telegram, an MCP client, GitHub issues, or any OpenAI-compatible client — all through the same brain, with shared memory, a unified trust/permission model, moderation, and per-secret output redaction. Its thinking runs on a swappable engine — Claude Code (on your subscription, the default), Gemini, Codex, or a self-hosted model — and whichever you pick drives every channel. A collector + dashboard give you one pane of glass over everything the assistant is doing, and a CLI lets any session watch, steer, and coordinate with the others.
The default engine uses your Claude subscription — no metered API key
The Claude engine executes through the local Agent SDK on your Claude subscription — there is
no ANTHROPIC_API_KEY execution path. Other engines (Gemini/Codex/self-hosted) use their own
login or a vault-stored API key. See Reasoning engines · Architecture.
-
What asmltr is, how to install it, and a quick first channel.
-
Adapter → envelope → core (SDK) → redact → outbound, plus the collector & dashboard.
-
Run on Claude, Gemini, Codex, or a self-hosted model — one choice drives every channel.
-
Discord, Telegram, MCP, GitHub, an OpenAI-compatible API, and interactive CLI sessions.
-
asmltr ls / map / who / send / announce / watch / attach / claude— observe, coordinate, take over. -
Live sessions, conversation-details + takeover, per-channel toggles, and content search.
-
Default-deny trust, moderation, output redaction, and a pluggable secret provider.
Reach the assistant from anywhere¶
flowchart LR
D[Discord]:::ch --> CONN
T[Telegram]:::ch --> CONN
M[MCP client]:::ch --> CONN
G[GitHub]:::ch --> CONN
O[OpenAI client]:::ch --> CONN
C["claude (CLI)"]:::ch --> CONN
CONN[connectors] --> CORE[asmltr-core<br/>local Agent SDK]
CORE -. event stream .-> COL[collector]
COL --> UI[dashboard / CLI]
classDef ch fill:#8B5CF6,stroke:#EC4899,color:#fff;
Coordinate across sessions¶
asmltr is a self-reflecting orchestrator: every session can see the others and work with them.
- Steer & take over a live session — stop a turn, inject a message, or attach it.
- Cross-channel send — answer on Discord, deliver the file to Telegram.
- Announcements — push a timestamped note into every session's next turn.
- Awareness —
asmltr map/who <path>show where each session is working, so two of them don't collide.
asmltr is open source at github.com/jarethmt/asmltr.