Skip to content

celados/Browser-BC

 
 

Repository files navigation

Journey Forge Local

Record your own browser tasks → each website accumulates a bucket of capabilities, and every capability distills into one reusable skill → use them in Claude Desktop (and Claude Code). A single-user, local product. You bring your own LLM API key. Pure Python at runtime (no Node needed). Not a benchmark.

extension (record free-form task)
   └─► localhost server :8099   /v1/traces/init → chunks → finalize
          └─ assemble → data/traces/<id>/trace.json  (intent + events)
          └─ background harness pipeline:
               atomize → classify (capability) → bucket (per domain+capability)
               → distill bucket → SKILL.md + TRACE_GUIDE.md  → install
                 ├─ Claude Code:    ~/.claude/skills/<domain>-<capability>/SKILL.md (auto)
                 └─ Claude Desktop: <name>.zip → upload via Settings → Skills
   /api/buckets  exposes per-site capability buckets + skills

Each website is a folder of capability buckets, e.g. github.com/{login-with-credentials, signup-with-email, …} — a new recording is atomized into segments, each segment classified into a capability, and segments of the same capability pooled into one bucket that distills into one skill.

Layout

Path What
entry/main.py Desktop entry — starts the server, opens the panel in your browser
app/dist/index.html Control panel (zero-build, served by the server)
extension/ The recorder (product fork: points at localhost, free-form only)
server/server.py Local ingestion + control API
harness/ Distillation pipeline: atomize / classify / bucket / distill / install (pure Python)
harness/main.py CLI: ingest / distill / status / consolidate / query
scripts/start.sh Headless dev launcher
docs/ Trace schema + Claude Desktop setup

State lives under data/harness/: buckets.json, registry.json, and skills/<domain>/<capability>/{SKILL.md,TRACE_GUIDE.md,meta.json,evidence.jsonl}.

Quick start

  1. Configure & run the server

    cp config.example.env .env.local      # then set SF_LLM_KEY=sk-ant-...
    ./scripts/start.sh                     # or: python entry/main.py  (native window)

    The panel is at http://127.0.0.1:8099/. The server seeds a default key (jfl-local-dev-key) the extension ships with, so it connects automatically.

  2. Build & load the extension

    cd extension && pnpm install && pnpm build

    Chrome → chrome://extensions → enable Developer mode → Load unpacked → select extension/dist/chrome-mv3. It's pre-pointed at the local server.

  3. Record → finalize. Record a short task with the extension, stop, label, upload. With auto-distill on, a skill appears within ~1–3 min:

    • Claude Code: already installed under your skills root.
    • Claude Desktop: download the .zip from the panel (Trajectories) and upload it in Settings → Skills. See docs/claude-desktop-setup.md.
  4. (Optional) real browser execution. Panel → Browser executionConfigure Playwright MCP so Claude Desktop can actually click/type/navigate. Restart Claude Desktop after.

Notes

  • Skills don't grant tools. A SKILL.md is injected instructions. To execute its steps in a browser you must configure a browser MCP (Playwright) separately — the panel automates this for Claude Desktop.
  • LLM: the distiller speaks the Anthropic Messages API natively (default claude-opus-4-8). Point SF_LLM_BASE at an OpenAI-compatible gateway to use that path instead.
  • Data lives under data/ (git-ignored). Nothing leaves your machine except the distillation calls to your configured LLM.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 63.6%
  • Python 30.8%
  • Shell 2.7%
  • Rust 1.0%
  • CSS 1.0%
  • JavaScript 0.7%
  • HTML 0.2%