Company context for market intelligence.
Pull new funding, launches, and market signals on portfolio and watchlist companies, and surface what to track next.
One company layer, in 4 steps.
See how organizations, financing projections, and source events connect without role-specific identity types.
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 ↗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 ↗Deploy Behaviors 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.
Behaviors ↗“Each morning, scan @company for and . When a signal matches the thesis, draft an IC memo and ping the @investor who owns it.”
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 ↗New round · Lovable
- $15M Series A led by Accel
- Already in portfolio
- Warm intro via Adam K. (ex-Replit)
Drafted an IC memo for Adam with the warm path. Review before I post it:
The multiplayer operating layer for agents.
A harness makes one agent run. Lobu gives every agent the shared company environment around it — context, identity, permissions, events, interactions, approvals, actions, and audit. Bring Claude, Codex, ChatGPT, Slack agents, or your own runtime over MCP and APIs. Use Lobu's optional runtime when you also want Lobu to run a proactive agent. See how it compares →
One control plane. Any agent.
Any agent can use Lobu's shared context, identity, permissions, interactions, approvals, and connected actions. Add the optional inference and sandbox runtime when you want Lobu to run proactive agents too — with evals, deployment, and observability built in.







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.
import {
connectorFromFile,
defineAgent,
defineConfig,
defineSkill,
defineEntityType,
defineRelationshipType,
defineBehavior,
reactionFromFile,
secret,
} from "@lobu/cli/config";
import type ExaNewsFeedConnector from "./exa-news-feed.connector.ts";
import type founderActivityTrackerReaction from "./founder-activity-tracker.reaction.ts";
const founderActivityTrackerSkill = defineSkill({
name: "founder-activity-tracker",
content:
"You are a venture capital analyst tracking the public activity of startup founders in your portfolio.\n\nThe founders are the entities bound to this Behavior — the payload's `entities` array lists each founder's name, type, and ID. Their recent public activity arrives in the payload's `founder_posts` source.\n\nProduce a structured founder activity report:\n1. **Executive Summary**: 2-3 sentence overview of founder activity and signals.\n2. **Per-Founder Analysis**: For each active founder, summarize their messaging themes, engagement level, and signals about company direction.\n3. **Cross-Portfolio Patterns**: Themes multiple founders discuss.\n4. **Notable Signals**: Flag potential announcements, strategic shifts, or concerns.\n\nBe specific and cite actual tweets/posts as evidence.\n",
});
const opportunityMatcherSkill = defineSkill({
name: "opportunity-matcher",
content:
"You are a community intelligence agent for a private founder community managed by a venture capital fund.\nYour job is to monitor founder activity and identify high-quality introduction opportunities between portfolio founders.\n\nThe community members are the entities bound to this Behavior — the payload's `entities` array carries each member's name, type, and metadata (title, role). Their recent activity arrives in the payload's `content` source.\n\n## Instructions\n1. Scan all new content for signals: launches, posts, hiring announcements, funding news, project updates, and collaboration signals.\n2. For each signal, identify which other community founders are likely to care and explain why.\n3. Suggest a concrete action: warm intro draft, shared-interest notification, or flagging for community ops review.\n4. Only suggest introductions where there is a clear, specific overlap — not generic \"both work in tech\" matches.\n5. Rate each signal's strength (high/medium/low) based on timeliness and relevance.\n",
});
const vcTracking = defineAgent({
id: "vc-tracking",
skills: [founderActivityTrackerSkill, opportunityMatcherSkill],
name: "vc-tracking",
description:
"Track companies, founders, and investment opportunities for venture firms",
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 founderActivityTracker = defineBehavior({
agent: vcTracking,
slug: "founder-activity-tracker",
name: "Founder Activity Tracker",
triggers: [{ kind: "schedule", cron: "0 10 * * *" }],
notification: { priority: "normal" },
tags: ["vc", "founders", "daily"],
minCooldownSeconds: 600,
reaction: reactionFromFile<typeof founderActivityTrackerReaction>(
"./founder-activity-tracker.reaction.ts"
),
skills: ["founder-activity-tracker"],
sources: {
founder_posts:
"SELECT id, title, payload_text, author_name, source_url, occurred_at, score, origin_type, connector_key FROM events WHERE connector_key IN ('x') AND origin_type IN ('tweet', 'reply') ORDER BY occurred_at DESC LIMIT 300\n",
},
reactionsGuidance:
"When a founder signals hiring activity, fundraising, or pivots, flag for the investment team.\nTrack founders going quiet as a potential concern.\nAlert on any public statements about competitors or market conditions.\n",
});
export default defineConfig({
connectors: [
connectorFromFile<typeof ExaNewsFeedConnector>(
"./exa-news-feed.connector.ts"
),
],
org: "market",
orgName: "Market",
orgDescription:
"Track companies, founders, and investment opportunities for venture firms",
agents: [vcTracking],
entities: [
company,
founder,
fundRound,
investor,
jobPosting,
product,
sector,
],
relationships: [
educatedAt,
foundedBy,
headquarteredIn,
inIndustry,
inSector,
investedIn,
mentions,
operatesIn,
previouslyAt,
primaryRelationshipOwner,
roundLedBy,
roundOf,
sourcedBy,
usesTechnology,
worksAt,
],
behaviors: [founderActivityTracker, opportunityMatcher],
});Start with an agent already connected.
Fork a working agent already wired to company systems, shared state, human approvals, and governed actions. Each ships with its sources, state model, and the work it performs.
Tracks account health, rollout progress, and renewal signals across the customer base.
Reviews incoming contracts, summarizes risk, and surfaces missing protections before sign-off.
Reconciles data across systems, explains variance, and prepares recurring reporting runs.
Declarative. Yours. In your repo.
Every example 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.
Local, self-hosted, or managed.
The same project runs on your laptop, in your cloud, or fully managed by lobu. Your context, permissions, and audit trail stay wherever you need them.
Run in your cloud.
Docker, a cloud VM, or Kubernetes when data and controls need to stay with you.
Let lobu run it.
The same project with managed isolation, secrets, and upgrades, nothing to operate.
Questions a technical buyer asks first.
Latest blog posts
The Modern Data Stack for Agents
Connectors are CDC, entities are the modelled tables, Behaviors are dbt models on a schedule. Most of the analogy transfers. It breaks in four places: the loop has to close, derived state is only ever a cache, every read carries who it is for, and you cannot re-run a transform that sends email.
Read post →Self-Improving Agents Are Event-Sourced
Intelligence stopped being the blocker. Context is. A filesystem gives an agent no schema and no audit trail, so Lobu puts an append-only log in the middle: memory writes are commits, Behaviors are mutations, and approval is the merge.
Read post →The Context Layer Is an Event Store
Tasman says no product can build your context layer because the content doesn't exist. Half right. The governed why is a versioned, access-controlled event store that mirrors the warehouse instead of replacing it — and I built the Kelder scenario to find where that holds and where it doesn't.
Read post →Make every agent multiplayer.
One operating layer. Any agent. Open source.