GitHub/Jira ingest · Self-hosted workers

Turn tickets into
local AI execution pipelines.

Ingest tickets from GitHub or Jira, send them through AI steps like Playwright repro, create failing test, and fix failing test, then let workers run the whole flow on your machines in Docker.

$ curl -fsSL boboddy.dev/install | sh
pipeline · ticket-to-fix
Step
Ingest ticket
from: github / jira
signal.ticketReady
true
Step
Create failing test
after: playwright tester
signal.testCreated
true
Step
Fix failing test
worker: local docker
signal.testsPassing
true
worker-01.local · worker-02.eu · 3 steps claimed · ticket moving to fix
Features

The workflow layer between your tickets and local workers.

Boboddy is built for the path from inbound ticket to executed fix. Ingest the work, pass it through AI steps, and keep the execution on infrastructure you control.

Start from real tickets

Pull work in from GitHub, Jira, or another source system so your pipelines begin with the same tickets your team already uses.

Chain purpose-built AI steps

Model each stage of the workflow explicitly — reproduce with Playwright, create a failing test, fix the failing test, then decide what should happen next.

Run workers anywhere

Spin up workers on a laptop, a server, or a fleet. They claim pipeline work, run each step in Docker, and report results back over a single connection.

Bring your own AI

Use the model that fits each step. API keys stay with your workers, so the control plane coordinates the workflow without owning your credentials.

Per-step sandboxes

Every pipeline step gets a fresh Docker container with a scoped agent. Filesystem changes, secrets, and tool access stay isolated by default.

See the workflow advance

Live execution feeds, structured signals, and per-step traces show exactly why a ticket advanced from ingest to repro to test creation to fix.

How it works

A simple model for a real ticket workflow.

Ingest the ticket, move it through AI steps, and let your workers execute the flow. The shape stays simple even when the workflow gets powerful.

01

Ingest the ticket

Start with the work item your team already has. Pull a GitHub issue or Jira ticket into a pipeline-ready shape with the context your downstream steps need.

steps/reproduce-bug.ts
import { defineStep, z } from "@boboddy/sdk";

export const ingestTicket = defineStep({
  name: "ingest-ticket",
  input: z.object({ source: z.enum(["github", "jira"]), ticketId: z.string() }),
  output: z.object({ title: z.string(), repo: z.string(), acceptanceCriteria: z.array(z.string()) }),
  signals: {
    ticketReady: { type: "boolean" },
    priority: { type: "string" },
  },
});
02

Send it through AI steps

Compose the concrete workflow you want to automate. For example: Playwright tester, create failing test, then fix failing test.

pipeline.ts
import { definePipeline } from "@boboddy/sdk";
import { ingestTicket, playwrightTester, createFailingTest, fixFailingTest } from "./steps";

export const ticketToFix = definePipeline({
  name: "ticket-to-fix",
  stages: [
    { step: ingestTicket, advanceWhen: "ticketReady == true" },
    { step: playwrightTester, advanceWhen: "reproduced == true" },
    { step: createFailingTest, advanceWhen: "testCreated == true" },
    { step: fixFailingTest, advanceWhen: "testsPassing == true" },
  ],
});
03

Run workers on your machines

Workers connect to your project, claim steps from the pipeline, run them in Docker, and stream the results back from your own hardware.

terminal
# on any machine you own
$ boboddy auth login
$ boboddy work my-project

  → worker-01.local connected
  → claimed: create-failing-test · exec_8f3a
  → docker: pulling agent image
  → signal: testCreated = true
  → next: fix-failing-test
Security

Self-hosted by default. No compromise.

Boboddy ships the control plane. You bring the workers. The result is a platform with the polish of a SaaS and the trust boundary of on-prem.

data flow
your repo
private
your worker
docker
your llm
byo key
↑ only signals & metadata reach the control plane ↑

Your code never leaves your network

Workers clone, run, and report from inside your perimeter. Source, build artifacts, and intermediate state stay on your hardware.

Your AI provider, your API keys

Credentials live on the worker, not the control plane. Swap providers per project or per step without giving up keys to anyone.

Docker isolation per execution

Each step run is sandboxed in a fresh container with a scoped agent. Nothing leaks between executions — by design.

Pay for compute you already own

Shared execution planes charge for cycles you don't need. Boboddy runs on the machines you have, at the cost you already pay.

Run ticket-to-fix workflows without rebuilding the control plane.

Keep the look and polish of a hosted control plane while running the real work — from ticket ingest to failing test to fix — on machines you already control.