Event collection you own, version, and trust

MCP serverDev tools

flow lets your AI work with walkerOS HTML tagging. It can generate, parse, and validate data-elb attributes, so you can tag your pages correctly and catch tagging mistakes early.

Unavailable. This server has no hosted endpoint yet, so ahel can't serve it.

Add flow, then share the HTML you want to tag and ask your AI to generate, read, or check the data-elb attributes.

What your AI can do with it

  • Generate data-elb attributes for tagging HTML elements
  • Parse data-elb attributes from existing HTML
  • Validate data-elb attributes and flag tagging errors
  • Help write walkerOS tags for your pages

From the project's README

As published by elbwalker/walkeros in README.md.

From browser to BigQuery and ad platforms - warehouse-native, and ready for AI agents via MCP.

The problem

GA4, custom tags, ad pixels - each one a separate setup, none of them agreeing on the same numbers. When something breaks, you can't see where.

walkerOS is one collection layer for all of them.

Why walkerOS?

  • Config-as-code - version control your tracking, review it in PRs, deploy with confidence
  • Declarative tagging - tag your UI in HTML, not scattered JavaScript
  • Consent-native - events queue until consent is given, then flush correctly to every destination
  • Schema validation - catch bad events at collection time, not weeks later in a dashboard
  • One layer, many destinations - send to your warehouse and ad platforms from a single event definition
  • Warehouse-native - events land clean and structured in your data warehouse, ready to query
  • MIT licensed - self-host anywhere, no vendor lock-in

How it works

  • Sources: Where events come from (browser, dataLayer, Express, AWS Lambda, GCP Functions, and more)
  • Collector: The processing engine (consent, validation, mapping, routing, enrichment)
  • Destinations: Where events go (GA4, Google Ads, Meta CAPI, BigQuery, and more)

Two ways to install walkerOS

Choose one based on your workflow and integration possibilities:

ModeDescriptionBest For
IntegratedImport directly into your TypeScript applicationReact/Next.js apps, TypeScript projects
BundledBuild a standalone script from JSON config with npx walkerosStatic sites, Docker deployments, CI/CD

Integrated (import into your app):

import { startFlow } from '@walkeros/collector';

const { elb } = await startFlow({
  destinations: {
    console: {
      code: {
        type: 'console',
        config: {},
        push: (event) => console.log('Event:', event.name),
      },
    },
  },
});

await elb('page view', { title: 'Home' });
// -> logs: Event: page view

Wire a real source and destination once you are ready:

import { startFlow } from '@walkeros/collector';
import { sourceBrowser } from '@walkeros/web-source-browser';
import { destinationGtag } from '@walkeros/web-destination-gtag';

await startFlow({
  sources: {
    browser: {
      code: sourceBrowser,
      config: { settings: { pageview: true } },
    },
  },
  destinations: {
    ga4: {
      code: destinationGtag,
      config: {
        settings: { ga4: { measurementId: 'G-XXX' } },
      },
    },
  },
});

Bundled (build from JSON config):

{
  "version": 4,
  "flows": {
    "default": {
      "config": {
        "platform": "web",
        "bundle": {
          "packages": {
            "@walkeros/collector": {},
            "@walkeros/web-source-browser": {},
            "@walkeros/web-destination-gtag": {}
          }
        }
      },
      "sources": {
        "browser": {
          "package": "@walkeros/web-source-browser",
          "config": { "settings": { "pageview": true } }
        }
      },
      "destinations": {
        "ga4": {
          "package": "@walkeros/web-destination-gtag",
          "config": {
            "settings": { "ga4": { "measurementId": "G-XXX" } }
          }
        }
      }
    }
  }
}

Then: npx walkeros bundle flow.json

AI-ready via MCP

walkerOS exposes a Model Context Protocol (MCP) interface. AI agents can read your event schema, suggest tracking definitions, and generate integration code - making your event layer programmable, not just configurable.

In Claude Code, one plugin installs both MCP servers and the walkerOS skills:

/plugin marketplace add elbwalker/walkerOS
/plugin install walkeros@elbwalker

For any other MCP client, add the servers to its configuration:

{
  "mcpServers": {
    "walkeros-flow": {
      "command": "npx",
      "args": ["@walkeros/mcp"]
    },
    "walkeros-source-browser": {
      "command": "npx",
      "args": ["@walkeros/mcp-source-browser"]
    }
  }
}

Loading a flow, validating it, and simulating an event all run locally, no account needed. See the MCP docs.

Coming from Google Tag Manager? See walkerOS vs. GTM.

Contributing

⭐️ Help us grow and star us. See our Contributing Guidelines to get involved.

Support

Need help? Start a discussion, or reach out via email.

For more insights, visit the talks repository.

License

Licensed under the MIT License.

Signals

GitHub stars
343
Forks
23
Last commit
Sep 2026
Advanced
Delivery
flow MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-walkeros-flow
Source
github.com/elbwalker/walkeros