---
slug: "dripline"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/Michaelliv/dripline@main/README.md"
repo: "https://github.com/Michaelliv/dripline"
source_file: "README.md"
branch: "main"
---
<p align="center">
  <img src="docs/assets/hero.png" alt="dripline — SQL over every API, CLI, and warehouse you actually use" width="100%">
</p>

# dripline monorepo

Query anything with SQL, schedule it, watch it live.

This repo is a bun workspace containing three things:

- **[`packages/dripline`](https://github.com/Michaelliv/dripline/tree/HEAD/packages/dripline/)** — the engine, CLI, and SDK. Turn APIs, CLIs, and cloud services into DuckDB tables. Zero plugins in core.
- **[`packages/dripyard`](https://github.com/Michaelliv/dripline/tree/HEAD/packages/dripyard/)** — dashboard + worker supervisor. Point it at a `.dripline/` workspace, get a reactive UI over lanes, runs, workers, catalog, warehouse, and an SQL surface.
- **[`packages/plugins`](https://github.com/Michaelliv/dripline/tree/HEAD/packages/plugins/)** — 58 first-party plugins (github, kubectl, cloudflare, vercel, stripe, datadog, sentry, slack, …). Installed directly from this repo by URL: `dripline plugin install git:github.com/Michaelliv/dripline#packages/plugins/<name>`.

## Quickstart

```bash
bun install                   # installs everything, links workspace deps

bun run --filter dripline build
bun run --filter dripline test

# Run the CLI directly from source:
bun --filter dripline dev -- query "SELECT 1"

# Boot the dashboard against a dripline workspace:
cd /path/to/your/.dripline-project
bun --filter dripyard dev -- serve
```

## Layout

```
packages/
  dripline/           ← engine + CLI + SDK   (npm: dripline)
  dripyard/           ← dashboard + workers  (npm: dripyard)
  plugins/
    github/           ← installed via git:...#packages/plugins/github
    cloudflare/
    stripe/
    …                 ← 58 plugins, one per directory, not on npm
```

Internal dependencies use `workspace:*` — editing `packages/dripline` immediately reflects in `packages/dripyard` and every plugin, no publish needed.

## Releasing

Push a `v*` tag. CI tests, then publishes `dripline` and `dripyard` to npm (`--tag next` for `rc`/`alpha`/`beta`), then cuts a GitHub release with autogenerated notes. Plugins are not published — users always install them from this repo by git URL.

## Tooling

- **bun** for install, scripts, test runner, TypeScript execution
- **TypeScript** with per-package `tsconfig.json`
- **biome** for format + lint (one config at the root)
- No lerna, nx, or turbo — bun's native `--filter` covers what we need

## Per-package docs

- Dripline engine, SDK, plugin authoring, warehouse mode → [`packages/dripline/README.md`](https://github.com/Michaelliv/dripline/blob/HEAD/packages/dripline/README.md)
- Dripyard dashboard, workers, flaregun proxies → [`packages/dripyard/README.md`](https://github.com/Michaelliv/dripline/blob/HEAD/packages/dripyard/README.md)
- Individual plugins → each has its own README in `packages/plugins/<name>/`

## License

MIT
