Skip to content

Example: Minimal

import { Aside } from ‘@astrojs/starlight/components’;

The simplest possible OrgLoop setup. One webhook source, one console logger, no environment variables. Use this to understand the config format before building anything real.

  • The orgloop.yaml project file and how it references external config files
  • Connector and logger configuration in separate YAML files
  • How to send a test event and see it logged
  • Node.js >= 22
  • OrgLoop CLI installed (npm install -g @orgloop/cli)
  • No accounts or API tokens required

Copy the example and run it:

Terminal window
cp -r examples/minimal my-project
cd my-project
orgloop validate
orgloop start

Or scaffold from scratch:

Terminal window
orgloop init # select "webhook" when prompted for connectors
cd my-project
orgloop validate
orgloop start

The example uses three files. No environment variables are required.

The project root. References connectors and loggers by path.

# orgloop.yaml — Minimal example
# The simplest possible OrgLoop setup: one source, one actor, one route.
apiVersion: orgloop/v1alpha1
kind: Project
metadata:
name: minimal-org
description: "Minimal OrgLoop example"
defaults:
poll_interval: 5m
log_level: info
connectors:
- connectors/webhook.yaml
loggers:
- loggers/default.yaml

A generic webhook source that listens for inbound HTTP POST requests.

apiVersion: orgloop/v1alpha1
kind: ConnectorGroup
sources:
- id: webhook
description: Generic webhook receiver
connector: "@orgloop/connector-webhook"
config:
path: "/webhook"
emits:
- resource.changed
- message.received

Console logger with color output.

apiVersion: orgloop/v1alpha1
kind: LoggerGroup
loggers:
- name: console-log
type: "@orgloop/logger-console"
config:
level: info
color: true

Send a test event with curl:

Terminal window
curl -X POST http://localhost:3000/webhook \
-H "Content-Type: application/json" \
-d '{"type": "test", "message": "hello from orgloop"}'

The console logger prints each event as it flows through the system:

[info] event.ingested webhook resource.changed evt_abc123
[info] event.routed webhook resource.changed (no matching routes)

Since this example has no routes or actors, events are ingested and logged but not delivered anywhere. That is the point — it shows the config format and event lifecycle without any external dependencies.

Once you are comfortable with the config format, add a real source:

  • GitHub to Slack — one source, one actor, two tokens. The simplest real-world setup.
  • Multi-Agent Supervisor — the feedback loop pattern with Claude Code and a supervisor agent.
  • Engineering Org — the full multi-source setup with GitHub, Linear, Claude Code, and OpenClaw.