🔧 Make Your Own ObieApp Tool
Every tool in ObieWebApp was built by describing what was needed to Claude Code (Anthropic's AI coding assistant). You can do the same — describe a tool you need, give Claude the right context, and it writes the complete PyScript + JavaScript interface on top of the existing Python modules.
How it works
- Open Claude.ai/code or install the Claude Code CLI.
- Copy the starter prompt below and paste it into Claude.
- Replace the last line with a description of the tool you want.
- Claude reads the project rules, the existing tools, and the Python modules, then builds your tool.
CLAUDE.md at the repo root contains explicit rules: which Python modules to use, how to structure the HTML, naming conventions, CSS patterns, and which versions of PyScript and Plotly to pin. Claude reads this first and follows it exactly — so new tools automatically match the look and feel of Explore, Convolve, and Acquire.
Not sure where to start?
No coding experience needed. This takes about 15 minutes. All the services used here are free.
Create a free Claude account
Go to claude.ai and sign up for a free account if you don't have one. Claude is the AI assistant that will write the code for you.
Open a new Claude conversation and paste the starter prompt
Click New conversation, then scroll down to the Starter prompt section on this page and click Copy. Paste it into Claude's message box.
At the very bottom of the pasted text you'll see [describe your tool here] — replace that with what you want. For example: "A simple page that loads a TRF file and displays its FRF plot."
Press Enter. Claude will read the project rules and start writing your tool — this usually takes 1–2 minutes.
Save the files Claude produces
Claude will produce several files — typically index.html, main.py, pyscript.toml, and a .css file. Create a folder on your computer (e.g. MyObieApp) and save each file into it. You can copy the contents of each file from Claude's response and paste into a plain text editor (Notepad on Windows, TextEdit on Mac — make sure to save as plain text, not rich text).
You can also ask Claude to zip everything: just say "Can you give me all the files as a zip?"
Download one extra file: coi-serviceworker.js
This small file is required for the page to work correctly in Chrome. Go to
this link,
right-click anywhere on the page, choose Save as…, and save the file as coi-serviceworker.js into the same folder as your other files.
Create a free GitHub account
Go to github.com and sign up. GitHub is a free service that stores code online and can serve your page directly to anyone with a link — no server needed.
Create a new repository (think of it as a folder online)
Once logged in, click the + button at the top-right of GitHub and choose New repository. Give it a name (e.g. my-obie-tool), leave everything else as default, and click Create repository.
Upload your files
On the repository page you just created, click uploading an existing file (or Add file → Upload files). Drag all the files from your MyObieApp folder into the upload area. When done, scroll down and click Commit changes (this means "save").
index.html, main.py, pyscript.toml, your CSS file, and coi-serviceworker.js are all uploaded.Turn on GitHub Pages (makes your page live)
In your repository, click Settings (top tab), then Pages in the left sidebar. Under Source, select Deploy from a branch, choose main as the branch, leave the folder as / (root), and click Save.
After about 60 seconds, GitHub will show you a green banner with your page's address — something like https://yourname.github.io/my-obie-tool/. Open it in Chrome and your tool is live.
Share the link
Copy the github.io address and send it to anyone. They just open it in Chrome — no installation, no account needed on their end.
To update the tool later, come back to Claude, describe what you want to change, and repeat steps 3–4 (just re-upload the changed files to GitHub and the live page updates automatically within a minute).
Starter prompt — copy and paste this
Key resources
What the Python modules can do
| Need | Module |
|---|---|
| FRF / H1 estimation | Python/processing/frf.py — FRFAccumulator, add_hit, compute_frf |
| Convolution | Python/processing/convolution.py — convolve_it, convolve_with_frf |
| Band averaging | Python/processing/bands.py — compute_bands |
| Read TRF / AvC / AvR | Python/fileio/ — loaded via GitHub URL in pyscript.toml |
| Read MATLAB .mat | Python/fileio/mat_fileio.py — accepts file paths or raw bytes |
| Browser config / IndexedDB | Web/py/config.py |
| Browser-side DSP | Web/py/dsp.py |
Example ideas
Batch comparison
Load all TRF files for a given instrument, compute statistics (mean, spread) across positions, and display a summary plot.
Mode tracker
Identify A0, B1−, B1+ peak frequencies automatically and track how they shift across multiple instruments or adjustments.
Band report
Select a folder of FRF files, compute band averages for each, and export a formatted HTML or CSV comparison table.
Before / after diff
Load two sets of measurements (e.g. before and after a setup change) and show the dB difference at each frequency.
WAV spectral view
Load a multi-position WAV file from Acquire, display individual hit waveforms and their FFTs side by side.
Custom auralization
Apply multiple FRFs in sequence (bridge + body + room) to a dry signal and compare the results interactively.
Hosting your tool
Claude will generate a self-contained folder (an index.html, a main.py,
a pyscript.toml, and a CSS file). Because PyScript requires
SharedArrayBuffer, the page must be served over HTTPS with the correct
cross-origin headers — the included coi-serviceworker.js handles this automatically,
so you just need a static HTTPS host. All of the following have a free tier and work with
no server-side configuration:
| Service | How to deploy |
|---|---|
| GitHub Pages | Push the folder to a GitHub repo, go to Settings → Pages, set source to your branch. Free, reliable, HTTPS automatic. |
| Netlify | Drag and drop your folder onto netlify.com/drop. Live in seconds with a generated URL. Or connect a GitHub repo for auto-deploy on every push. |
| Vercel | Run npx vercel in your folder or connect a GitHub repo via the Vercel dashboard. HTTPS and custom domains included free. |
| Cloudflare Pages | Connect your GitHub repo in the Cloudflare dashboard. Deploys on every push with global CDN and free HTTPS. |
In all cases, also copy coi-serviceworker.js from the
ObieApp repo
into the root of your deployed folder — the starter prompt already instructs Claude to include it.