buttercup.sh rev.2

pure vintage charm · aggressively anti‑dystopian

NOT READY
 ┌────────────────────────────────────────────────┐
 │  B U T T E R C U P   AGENT WORKS   ·   rev.2   │
 │  a harness for building agents, in a browser   │
 └────────────────────────────────────────────────┘

No server. No build step. No telemetry. Your keys stay in this browser's localStorage; model traffic goes straight from this tab to the vendor you pick.

Open to paste an API key, then ask for an agent. Try: “scaffold a blocks.ai research agent, then run it”.

Paste a screenshot (or drop one, or press IMG) and it goes out with your next request — the model reads the picture and the prompt together.

Drop text files or a whole folder onto the page and they land in the agent's , ready to be read, edited and exported back out.

Type /help for the commands this tab handles itself — /init writes the project rules, /undo rewinds the files and the context together, /compact folds a long session into a handover note.

workspace /

Drag files or a folder anywhere onto the page to put them here — text only, and /undo takes an import back out.

  • empty workspace

tool definitions

Handed to the model verbatim on every turn. Each one is a plain JS function in js/tools.js — no server touches them.

    agent preview

    sandboxed iframe

    Nothing mounted. The preview tool points this frame at a file in the workspace; run_agent executes one and reports back. Once something is mounted, SEND TO MODEL has the frame draw itself and attaches the picture to your next prompt — the page cannot read inside the sandbox, so the screenshot comes back out of it.

    completion backend

    provider
    harness

    SAVE checks the key against the vendor's model list — no tokens spent — and the lamp in the title bar turns READY only when the vendor accepts it. base url appears for OpenAI-compatible backends, so any gateway that speaks /chat/completions works without a code change.

    When the last request's token count crosses compact at, the conversation is summarized into one handover note and the session continues from it — workspace files are never touched, and /undo restores the full context. Set it below your model's window with room for one more turn.

    A key in localStorage is readable by anything that can run script in this origin. Use a scoped, revocable key, and prefer a key you don't mind rotating.