Agent Community · Self-hostable

Company context for your community.

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

Try Lobu
Connects to
DiscordGitHubGmailGoogle CalendarGoogle ChatHacker NewsLinearMicrosoft TeamsPostgreSQLProduct HuntRedditRSS / AtomSlackTelegramWhatsApp CloudX (Twitter)YouTube+5 more
03/LOBU RUN ]

One company layer, in 4 steps.

See how members, interests, launches, and introductions connect while people approve every outreach.

01

Connect your company.

Connectors stream your databases, SaaS tools, files, devices, and internal APIs into context. Your systems of record stay where they are. Models, sandboxes, and devices are independent layers, 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

Turn activity into governed context.

Raw events resolve into people, customers, projects, policies, and goals, with the relationships between them. Every fact from the connectors above converges on the right record, carries its provenance, and is read under the caller's permissions.

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

Deploy Automations that watch and act.

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.

Automations ↗
automation
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

Use it from any agent.

ChatGPT, Claude, and Codex connect over MCP; Slack, Teams, and WhatsApp over chat; your own apps over the API. Same context, same permissions, whoever's asking. Consequential work arrives as a proposal you review, edit, and approve.

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?
03/TWO WAYS IN ]

Bring any agent. Add shared context.

Use the agents your team already trusts. Managed agents are optional.

Start here

Bring your agents

Connect ChatGPT, Claude, Codex, OpenClaw, or any MCP client to the same company context, scoped to each user.

Connect an agent →
Optional runtime

Build a managed agent

Run repeatable work from live events or schedules under the same approval policy.

Build a managed agent →
04/UNDER THE HOOD ]

One control plane. Any agent.

Share context, permissions, approvals, and connected actions with any agent. Add Lobu's runtime only when you need it.

Halftone figure: multi-socket plug bank
Halftone figure: stacked storage drives
Halftone figure: vacuum tube in a ceramic socket
Halftone figure: sealed glovebox isolation chamber
Halftone figure: balance scale with calibration weights
Halftone figure: freight container on a crane hook
Halftone figure: oscilloscope with waveform
01·CONNECTORS

Plug into everything.

22+ connectors (Slack, GitHub, Gmail, Linear, Postgres and more) stream events in, and actions flow back out under scoped identities. 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, automations, and agent configuration. Inspect each piece or let your coding agent generate it.

lobu.config.tslobu.config.ts
import {
  connectorFromFile,
  defineAgent,
  defineConfig,
  defineSkill,
  defineEntityType,
  defineRelationshipType,
  defineAutomation,
  every,
  secret,
  field,
} from "@lobu/cli/config";
import type DiscoursePostsConnector from "./discourse-posts.connector.ts";

const opportunityMatcherSkill = defineSkill({
  name: "opportunity-matcher",
  content:
    'Monitor connected profiles, newsletters, websites, and member updates for new launches, posts, hiring signals, funding news, and project changes. Return each strong match in `signals` as a standard observation event draft: `content` explains the match and `metadata` contains `{ kind: "community_match", member_a, member_b, confidence }`. Return an empty array when there is no specific match.\n',
});

const agentCommunity = defineAgent({
  id: "agent-community",
  skills: [opportunityMatcherSkill],
  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 = defineAutomation({
  agent: agentCommunity,
  slug: "opportunity-matcher",
  name: "Opportunity matcher",
  triggers: [every("0 */12 * * *")],
  tags: ["community", "matching"],
  minCooldownSeconds: 300,
  outputs: { signals: { event: "observation" } },
  skills: ["opportunity-matcher"],
});

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],
  automations: [opportunityMatcher],
});

Connect your first agent to company context.

Connect any agent to shared context and keep consequential actions under approval.

Status:// connecting agent…