Conduit
Author dashboards, fetchers, and explorers in VS Code as YAML workflows — no extension code required.
A Conduit workflow is a *.conduit.yaml file that chains a small set of built-in steps (query Postgres / SQLite, download files, parse zips, sign JWTs…) and renders the results into views (table / tree / metadata / text / interactive JWT editor). Workflows can register palette commands, bind to file extensions, and run on demand.
Install
git clone https://github.com/NikkyAmresh/conduit.git
cd conduit
npm install
npm run install-extension
This codegens, typechecks, bundles via esbuild, packages a VSIX, and installs into VS Code or Cursor.
Marketplace: not yet published.
Quick start — your first workflow
- Run
Conduit: New Workflow from Template — pick workspace scope, then blank.
- Replace the file with:
# yaml-language-server: $schema=./resources/schema.json
id: my.first
name: My First Workflow
inputs:
- id: name
type: string
label: Your name
default: world
steps: []
views:
- type: text
title: Greeting
data: "Hello, ${inputs.name}!"
- Run
Conduit: Run Workflow… and pick "My First Workflow". Click Run.
Built-in step types (v1)
| Step |
Purpose |
db.query.postgres |
Run SQL against a configured Postgres connection |
db.metadata.postgres |
List tables / enums / check constraints / databases |
db.query.sqlite |
Run SELECT against a .db file (sql.js, in-memory) |
http.download |
Fetch a URL → on-disk path; skips if the file already exists |
parallel.foreach |
Run an inner step per item, concurrency-capped |
file.extractZip |
Zip → directory of files |
file.parseSqliteDir |
Walk a directory of SQLite files → tables + extra files |
file.readUtf8 |
Read a file path as UTF-8 string |
file.write |
Write a string to a path |
crypto.sha256 |
Buffer / string → hex digest |
jwt.decode / jwt.encode |
HS256/384/512 |
transform.merge |
Merge multiple SQLite-tables payloads with id-injection |
transform.parseJson |
Parse a string as JSON |
Built-in view types
| View |
Notes |
table |
Sortable columns, paginated |
metadata |
Key-value table |
tree |
Collapsible nested object/array |
text |
Plain or pretty JSON |
jwt-editor |
Interactive bidirectional JWT ↔ JSON editor (HS256/384/512, WebCrypto) |
Placeholders
Inside with: and views[].data: you can reference:
${inputs.<id>} — workflow input value
${<stepId>.<path.to.field>} — output from an earlier step
${secrets.<key>} — value from VS Code SecretStorage (set via Conduit: Set Secret)
${config.<key>} — workspace config field
- Nested allowed:
${secrets.${inputs.secretKey}}
A whole-string placeholder (token: ${query.rows}) returns the raw value (array/object). An inline placeholder (message: "got ${query.rowCount} rows") is interpolated as a string.
File-bound workflows
A workflow can declare:
fileAssociations:
- pattern: "**/*.sql"
inputId: file
autoRun: true
When the user opens a matching file, VS Code routes it into the workflow runner with the file path bound to the chosen input.
Palette commands a workflow can declare
commands:
- id: my.workflow.run
title: "My App: Run"
Adds the command to the VS Code palette, wired to open the workflow's runner panel.
Conduit's own commands
| Command |
Action |
Conduit: Run Workflow… |
Pick + run any discovered workflow |
Conduit: New Workflow from Template |
Author a new workflow (workspace or user scope) |
Conduit: Open Config |
Open / create the workspace config |
Conduit: Switch DB Connection |
Change the active Postgres connection |
Conduit: Set Secret / Delete Secret |
Manage SecretStorage values |
Workflow discovery
Workflows are loaded from three locations, with later sources overriding earlier ones on the same id:
- Bundled —
resources/builtin-workflows/ inside the VSIX
- User —
~/.conduit/workflows/ (cross-workspace)
- Workspace —
**/*.conduit.{yaml,json} in the open workspace
Authoring tips
*.conduit.yaml files get JSON-Schema-backed IntelliSense via the Red Hat YAML extension. *.conduit.json files get the same via VS Code's built-in JSON validation.
- Empty / partially-edited workflow files are skipped silently — no toast spam while you author.
- Errors fail-fast at workflow load (unknown step type, missing field) rather than surfacing mid-run.
Build
npm run codegen # scan bundled workflows → write package.json customEditors + activationEvents
npm run typecheck # tsc --noEmit
npm run bundle # esbuild → out/extension.js
npm run build:icon # SVG → 128x128 PNG (sharp)
npm run package # → conduit-X.Y.Z.vsix
Roadmap (post-v1)
Behind future experimental flags: if / loop / subworkflow steps, transform.map / filter / pick / join, HTTP POST, scheduling / webhooks, chart / markdown / image views, plugin step types.
Licence
MIT — see LICENCE.