What you can build
A non-exhaustive gallery of products people are shipping (or could ship by next week) on top of nexo-rs. Each card links to the recipe / template that gets you 80 % of the way.
If you're scanning to decide whether nexo-rs fits your use case, read this page top-to-bottom. If something matches your shape, follow the link.
Channel agents
Installing a channel plugin — each card below needs one. They ship as GitHub Releases tarballs; install with
nexo plugin install <owner>/<repo>:nexo plugin install lordmacu/nexo-plugin-whatsapp nexo plugin install lordmacu/nexo-plugin-telegram nexo plugin install lordmacu/nexo-plugin-email nexo plugin install lordmacu/nexo-plugin-browser nexo plugin install lordmacu/nexo-plugin-google # Gmail/Calendar/Drive/Sheets nexo plugin install lordmacu/nexo-plugin-web-search # Brave/Tavily/DuckDuckGo/Perplexity nexo plugin listAll six also ship to crates.io:
cargo install nexo-plugin-web-search(etc.) drops the binary in$HOME/.cargo/bin/and the daemon's discovery walker picks it up automatically.(Or build from source:
cargo install --git https://github.com/lordmacu/nexo-plugin-whatsapp.) Then reference the channel in your agent YAML, as shown below.
WhatsApp sales agent — qualify leads + book demos
⏱ Build time · 1 afternoon · ⚙️ Layer · agent + WhatsApp plugin
Ana takes inbound WhatsApp messages, qualifies the prospect with a tool that calls your CRM, and books a calendar slot. Persona prompt
- 2 tools (
crm_lookup,calendar_book) + a YAML — that's it.
# config/agents.d/ana-sales.yaml
agents:
- id: ana-sales
persona_path: ./personas/ana-sales.md
llm: minimax-m2.5
channels:
- whatsapp:sales-line
tools: [crm_lookup, calendar_book, send_quote]
memory: { long_term: true, vector: true }
→ WhatsApp sales agent recipe → WhatsApp plugin docs
Email triage agent — auto-reply + escalate
⏱ Build time · 1 day · ⚙️ Layer · agent + email plugin + skill bundle
Sweeps Gmail every 5 minutes, classifies inbound messages (invoice / support / spam / sales), auto-replies to the easy buckets, escalates the rest to a human via Telegram with a 1-paragraph summary.
agents:
- id: triage-bot
persona_path: ./personas/triage.md
channels: [email:inbox, telegram:ops-team]
skills: [classify-email, draft-reply, escalate-to-human]
→ Email plugin docs → Skill catalog
Google Workspace agent — Gmail + Calendar + Drive
⏱ Build time · 1 afternoon · ⚙️ Layer · agent + Google plugin
OAuth-authenticated agent that can search Gmail, schedule
calendar events, and pull docs from Drive — all through the
generic google_call tool that wraps any *.googleapis.com
endpoint. Token state lives in the agent's workspace; access
tokens auto-refresh.
cargo install nexo-plugin-google
nexo # daemon discovers + spawns
nexo-plugin-google --oauth-once <agent_id> \
--client-id-file ./secrets/google_client_id.txt \
--client-secret-file ./secrets/google_client_secret.txt \
--token-file ./data/workspace/<agent_id>/google_tokens.json \
--scopes gmail.readonly,calendar,drive.readonly \
--workspace-dir ./data/workspace/<agent_id>
agents:
- id: gws
persona_path: ./personas/gws.md
google_auth:
client_id_file: ./secrets/google_client_id.txt
client_secret_file: ./secrets/google_client_secret.txt
scopes: [gmail.readonly, calendar, drive.readonly]
tools: [google_auth_status, google_call]
→ Google plugin docs → Source · github.com/lordmacu/nexo-rs-plugin-google
Customer support copilot — Telegram bot with KB + handoff
⏱ Build time · 2-3 days · ⚙️ Layer · agent + Telegram + vector memory + MCP
Telegram bot answers from your knowledge base (sqlite-vec). When the LLM's confidence drops, it hands off to a human and posts the transcript to your support channel.
agents:
- id: support-copilot
persona_path: ./personas/support.md
channels: [telegram:support-bot]
memory:
vector: true
vector_collections: [kb-faqs, kb-troubleshooting]
tools: [escalate_to_human, search_kb]
→ Telegram plugin → Vector search
Multi-agent systems
Multi-agent CRM — intake, qualifier, closer
⏱ Build time · 3-5 days · ⚙️ Layer · 3 agents + agent-to-agent delegation
Three coordinated agents over NATS:
- Intake picks up inbound on every channel, normalizes, hands off
- Qualifier scores the lead (BANT or your framework), tags
- Closer (only on hot leads) drafts proposal + books call
Communicate via agent.route.<target_id> topics with a
correlation_id to match responses.
flowchart LR
WA[WhatsApp] --> INTAKE[Intake]
EMAIL[Email] --> INTAKE
INTAKE -->|hot lead| QUAL[Qualifier]
QUAL -->|score >= 70| CLOSER[Closer]
CLOSER --> CALENDAR[Calendar tool]
QUAL -->|score < 70| NURTURE[(Drip campaign queue)]
→ Agent-to-agent delegation → Multi-agent coordination
Internal ops bot — Slack via MCP + AWS tools + cron
⏱ Build time · 1-2 days · ⚙️ Layer · agent + MCP + cron skills
A bot in your team's Slack (via MCP server) that answers "what's broken in prod", schedules nightly DB snapshots, and posts the daily cost report at 9 AM.
agents:
- id: ops-bot
persona_path: ./personas/ops.md
channels: [mcp:slack-team]
tools: [aws_logs, aws_cost, db_snapshot]
cron:
- "0 9 * * *" # daily cost report
- "0 2 * * *" # nightly DB snapshot
→ MCP channels → Cron schedule tools
SaaS products
WhatsApp meta-creator SaaS — clients build their own agents
⏱ Build time · 4-8 weeks · ⚙️ Layer · microapp + multi-tenant + WhatsApp Web UI
A SaaS where end-users sign up and build their own WhatsApp agent through a WhatsApp-Web-style React UI. Each client gets isolated state, their own agents, their own knowledge base. The framework runs out of view; the microapp owns the UX.
#![allow(unused)] fn main() { // Provision a tenant from the microapp backend admin.create_tenant(TenantSpec { id: "client-acme".into(), plan: "pro".into(), quotas: Quotas { agents: 10, llm_tokens_month: 5_000_000 }, }).await?; }
→ Microapps · getting started
→ agent-creator reference
→ Multi-tenant SaaS
Vertical SaaS — sales / support / marketing extension pack
⏱ Build time · 2-3 weeks · ⚙️ Layer · extension + multi-tenant
Bundle your domain expertise as an extension: 5 tools + 3 advisors
- 8 skills + an MCP server adapter. Operators run
nexo ext install ./your-packand your vertical lights up across all their tenants.
→ Extension manifest → Extension templates
Personas — pre-built agent packs
Persona packs bundle a ready-to-run agent (system prompt + plugin
bindings + workspace seed + secrets templates) you install with one
command. Distinct from plugins (plugins register CODE; personas
register CONFIG). Authored against the v2 manifest schema, published
as GitHub Releases, installed via nexo persona install.
# Browse + install:
nexo persona install lordmacu/nexo-persona-cody
nexo persona list
Available today:
| Pack | Persona | Channels | Use case |
|---|---|---|---|
lordmacu/nexo-persona-cody | Cody — programmer pair | Telegram, WhatsApp | Drives Claude Code goals from chat. Reads PHASES.md, dispatches one phase at a time, audits the diff before declaring done. Self-modify by default (with git-worktree isolation); production opts out via NEXO_DISALLOW_SELF_MODIFY=1. |
lordmacu/nexo-persona-ana-template | Ana — sales / lead capture | Hardened single-tool template for inbound WhatsApp lead capture. allowed_tools whitelist + outbound_allowlist.whatsapp defense-in-depth: a jailbroken prompt cannot exfiltrate leads to an attacker number. Operator customizes the advisor phone + sales script before going live. | |
lordmacu/nexo-persona-marketing-multiclient-template | Multi-client marketing | configurable | Three distinct agents (intake / retention / exec) on one daemon, each with its own LLM (MiniMax M2.5 / Claude Haiku 4.5 / DeepSeek v4 flash) + own proactive cadence + own daily turn budget. Demonstrates the multi-tenant single-install pattern. |
More on the way — see the Cody README
for the v2 manifest shape if you want to publish your own. Inner-
loop dev with nexo persona run /path/to/local/pack boots the
daemon against an unpackaged dir.
→ Installing personas (full guide)
Specialized agents
Browser scraping agent — URL → structured data
⏱ Build time · 1-2 days · ⚙️ Layer · agent + browser plugin
Receives URLs (via webhook / Telegram / API), uses the browser plugin (Chrome DevTools Protocol) to render JS-heavy pages, extracts structured data, publishes results back to a topic. Useful for price monitoring, competitive intel, lead enrichment.
agents:
- id: scraper
persona_path: ./personas/scraper.md
channels: [webhook:scrape-requests]
tools: [browser_navigate, browser_screenshot, browser_extract_text]
Lead notification poller — RSS / API → Telegram alert
⏱ Build time · half a day · ⚙️ Layer · poller + Telegram
A cron-style poller hits an external RSS feed / API every N minutes, dedupes against state, and pings your sales team in Telegram when something matches. Pure config — no LLM call needed on the hot path.
# config/pollers.yaml
pollers:
- id: linkedin-jobs
cron: "*/15 * * * *"
url: "https://linkedin.example/.../feed.atom"
filter:
keyword: ["VP Sales", "Head of Growth"]
publish: plugin.inbound.telegram.sales-alerts
→ Build a poller module → Pollers config
MCP server from Claude Desktop — expose your tools to Claude
⏱ Build time · 1 hour · ⚙️ Layer · agent as MCP server
Run nexo-rs as an MCP server. Claude Desktop (or any MCP client) sees every tool / agent / skill you've configured as if they were native. Build internal Claude integrations without writing TS.
→ MCP server from Claude Desktop → Agent as MCP server
Where to next
- Pick the closest match → follow its link → adapt to your data.
- Read the Quickstart first if you don't already have a binary running.
- Browse the Recipes section in the sidebar for end-to-end deploy walkthroughs.
- If you're building a SaaS, jump straight to Microapps · getting started.