Agent Community · Self-hostable

AI teammates for your community.

Match community members to new launches and posts in their space, and draft intro messages for the best two matches.

Connects to
DiscordGitHubGmailGoogle CalendarGoogle ChatHacker NewsLinearMicrosoft TeamsPostgreSQLProduct HuntRedditRSS / AtomSlackTelegramWhatsApp CloudX (Twitter)YouTube+3 more
01/LOBU RUN ]

Build your AI teammate in 4 steps.

See how a community teammate connects members, interests, launches, and introductions while people approve every outreach.

01

Connect your systems.

Connectors stream your tools into memory. Models, sandboxes, and devices are independent layers — text, image, speech, and more, credentials gateway-side. Flip the tabs to wire each one.

Connectors ↗
+50 built-in — or your agent writes one ↗
Issues, pull requests, and comments become traceable events.
feed · event → shared memoryentity
Issues
updateDevon shipped embeddings eval9m
Pull Requests
updateDevon shipped embeddings eval9m
Issue Comments
updateDevon shipped embeddings eval9m
PR Comments
updateDevon shipped embeddings eval9m
Discussions
updateDevon shipped embeddings eval9m
Discussion Comments
updateDevon shipped embeddings eval9m
Commits
updateDevon shipped embeddings eval9m
Stargazers
updateDevon shipped embeddings eval9m
02

Model your business.

Declare the people, business objects, and relationships your agent needs. Every fact from the connectors above converges on the right record, so any teammate reads the same picture.

Memory ↗
memory
Member
idPK
full_name
profile
Interest
idPK
member_idFK
topic
Launch
idPK
interest_idFK
project_url
Introduction
idPK
member_idFK
status
03

Define the work.

A trigger — a schedule, or reactive to connector events — plus a plain-language prompt. Once defined it runs unprompted: scans memory, matches the trigger, and surfaces the work with the evidence attached.

Behaviors ↗
behavior
triggers⏱ ScheduleEvery 15 min⚡ On eventSarah asked for 2 intros
prompt

Match community members to new launches and posts in their space, and draft intro messages for the best two matches.

@ connector@ entityReferences resolve to the sources and types you defined above.
04

Talk to your teammate everywhere.

Delegate in chat — Slack, Teams, WhatsApp, the API, or MCP. The agent proposes with buttons; you review, edit, and approve. Approving triggers a run that hands the work off to the right person.

Platforms ↗
lobujust now

Matches ready · Sarah

  • Asked for intros in embeddings infra
  • Devon shipped a similar eval harness
  • Mira posted an MCP auth breakdown

Drafted intros to Devon and Mira for Sarah. Review before I queue them:

Draft · intro to Devon
Hi Devon — Sarah is building in embeddings infra and loved your eval harness. Open to a 20-min intro this week?

A framework for AI teammates you own.

Not hand-rolled scripts. Not a rented employee. An open-source backend — connectors, shared memory, sandboxed execution, and observability in one — for teammates that watch, remember, and act. Yours to self-host and scope per person. See how it compares →

03/HARNESS ]

Everything an agent runs on.

Four swappable runtime layers — inference, execution, memory, and connectors — with evals, deployment, and observability built in. Replace any runtime layer without touching the others.

Halftone figure: multi-socket plug bank
Halftone figure: stacked storage drives
Halftone figure: inference orb with orbiting nodes
Halftone figure: sealed container with a keyhole
Halftone figure: clipboard checklist with checkmarks
Halftone figure: freight container on a crane hook
Halftone figure: oscilloscope with waveform
01·CONNECTORS

Plug into everything.

20+ connectors (Slack, GitHub, Gmail, Linear, Postgres and more) stream events in, and your agent acts back through them. Anything with an API fits the connector SDK.

For engineers

The same agent, in code.

The use case above is one project: connections, entity types, behaviors, and agent configuration. Inspect each piece or let your coding agent generate it.

lobu.config.tslobu.config.ts
import {
  connectorFromFile,
  defineAgent,
  defineConfig,
  defineEntityType,
  defineRelationshipType,
  defineBehavior,
  reactionFromFile,
  secret,
} from "@lobu/cli/config";
import type DiscoursePostsConnector from "./discourse-posts.connector.ts";
import type opportunityMatcherReaction from "./opportunity-matcher.reaction.ts";

const agentCommunity = defineAgent({
  id: "agent-community",
  name: "agent-community",
  description:
    "Discover aligned members, explain why they should meet, and draft warm introductions",
  dir: ".",
  providers: [
    {
      id: "anthropic",
      model: "claude/sonnet-4-5",
      key: secret("ANTHROPIC_API_KEY"),
    },
  ],
  network: {
    allowed: [
      "github.com",
      ".github.com",
      ".githubusercontent.com",
      "registry.npmjs.org",
      ".npmjs.org",
    ],
  },
});

// entity types and relationships defined here…

const opportunityMatcher = defineBehavior({
  agent: agentCommunity,
  slug: "opportunity-matcher",
  name: "Opportunity matcher",
  triggers: [{ kind: "schedule", cron: "0 */12 * * *" }],
  notification: { priority: "normal" },
  tags: ["community", "matching"],
  minCooldownSeconds: 300,
  reaction: reactionFromFile<typeof opportunityMatcherReaction>(
    "./opportunity-matcher.reaction.ts"
  ),
  prompt:
    "Monitor connected profiles, newsletters, websites, and member updates for new launches, posts, hiring signals, funding news, and project changes. Identify which members are likely to care, explain why, and queue approved intro or outreach drafts.\n",
});

export default defineConfig({
  connectors: [
    connectorFromFile<typeof DiscoursePostsConnector>(
      "./discourse-posts.connector.ts"
    ),
  ],
  org: "agent-community",
  orgName: "Agent Community",
  orgDescription:
    "Discover aligned members, explain why they should meet, and draft warm introductions",
  agents: [agentCommunity],
  entities: [match, post, topic],
  relationships: [interestedIn, introducedTo, matchesWith, writesAbout],
  behaviors: [opportunityMatcher],
});
04/EXAMPLES ]

Explore agent workflows.

Each example shows the sources, the memory, and the action for one AI teammate. Same loop (connect, watch, act) pointed at a different job.

01Sales

Tracks account health, rollout progress, and renewal signals across the customer base.

Sources
HubSpotStripeZendesk
Draftsa CSM check-in when a renewal nears and health drops.
Fork this agent →
02Legal

Reviews incoming contracts, summarizes risk, and surfaces missing protections before sign-off.

Sources
DriveGmailDocuSign
Flagsmissing clauses and routes them for review.
Fork this agent →
03Finance

Reconciles data across systems, explains variance, and prepares recurring reporting runs.

Sources
StripeSnowflakePostgres
Preparesa variance summary ahead of the monthly close.
Fork this agent →
lobu.config.ts
import { defineConfig, defineAgent, secret } from "@lobu/cli/config"
 
export default defineConfig({)
  agents: [
    defineAgent({ dir: "./agents/scout",
      providers: [{ id: "openrouter", key: secret("KEY") }] }),
  ],
  connections: [...], behaviors: [...],
});

Declarative. Yours. In your repo.

Every teammate above is a lobu.config.ts — desired state you version, review, and own.lobu validate checks it, lobu applyships it, lobu run boots it. No magic, no lock-in.

GitHub stars175Apache-2.0
Connectors20+Integrations
Channels8Slack, Teams, and more…
Self-hostable100%
07/RUN ANYWHERE ]

Local, self-hosted, or managed.

The same project runs on your laptop, in your cloud, or fully managed by lobu. Your data and controls stay wherever you need them.

Local

Run on your laptop.

One command boots the gateway, workers, memory, and embeddings.

Self-host

Run in your cloud.

Docker, a cloud VM, or Kubernetes when data and controls need to stay with you.

lobu Cloud

Let lobu run it.

The same project with managed isolation, secrets, and upgrades, nothing to operate.

08/FAQ ]

Questions a technical buyer asks first.

Most stacks reconstruct state on every prompt. lobu ingests connectors and webhooks into one append-only log first, so agents resume from where the org left off (with the evidence still attached) instead of starting cold each turn.
09/FROM THE BLOG ]

Latest blog posts

Give every teammate a colleague.

Ship it today.

Start building
Status:// provisioning…