Guides > Build an app in Warp
Build a Chrome extension (D3.js + JavaScript + HTML + CSS)
Build a D3.js Sankey diagram Chrome extension using Warp — scaffold, debug, coordinate multiple agents, and publish to the Chrome Web Store.
-
Set up your environment and create a new Chrome extension project
Section titled “Set up your environment and create a new Chrome extension project”Our goal: build a Chrome extension called “Sankey Stone” that visualizes flows using D3.js.
Files created during setup
manifest.jsonpopup.htmlpopup.csspopup.js- Icon images (
icon16.png,icon32.png,icon48.png, etc.)
Enable Developer Mode in Chrome and load the project:
chrome://extensions → Developer Mode → Load unpacked → Select your project folder
-
Test the initial D3.js rendering
Section titled “Test the initial D3.js rendering”After fixing missing icons, the extension loads but initially shows only “Loading diagram.”
Debug this by taking a screenshot and feeding it to an agent for context by asking:It says loading diagram — why isn’t the chart appearing?An agent reviews the error and regenerates the
popup.jsso the Sankey chart appears using D3.js.Result: a working, interactive diagram rendered inside the extension popup.
-
Version control and GitHub setup
Section titled “Version control and GitHub setup”Initialize a Git repository and commit:
Terminal window git initgit add .git commit -m "Initial Sankey Stone extension"The developer asks the agent to create a GitHub repo and push the code.
The agent handles authentication, creates the remote repo, and pushes all files automatically. -
Add a local test page and dynamic data
Section titled “Add a local test page and dynamic data”Launch a simple local web server with a test page that outputs traffic flow data. The extension reads this data and updates the Sankey diagram dynamically.
Transcript example prompt:
Update the test data page so that it generates random labels and different contexts when I hit the regenerate button.The agent edits the test page so that clicking the Regenerate Test Page button updates the diagram in real time.
-
Coordinate multiple agents in parallel
Section titled “Coordinate multiple agents in parallel”The video demonstrates running multiple agents in parallel. Each agent receives a different task:
Agent Task #1 Update the test data page to randomize labels and values#2 Change the refresh page button to regenerate the chart in a different style#3 Generate a useful README file for the projectYou can approve actions automatically by enabling Auto‑approve all agent actions so background updates run without manual confirmation.
-
Refine styles and interactions
Section titled “Refine styles and interactions”After the data layer works, now you can iterate on appearance:
Apply new color themes and improve the layout.Changes applied:
- Support for multiple color themes and improved node layout.
- Hovering over links highlights connected nodes.
- Users can drag nodes to rearrange the layout.
- Added a “Switch Style” button to cycle between themes.
To support exporting diagrams, you can ask:
Add a button to download this image as a PNG.The Warp agent writes the JS logic for PNG export and verifies that clicking the button saves a screenshot of the diagram.
-
Add an API key setup screen
Section titled “Add an API key setup screen”Create a settings page where users can store API keys:
Add a settings page to enter the Anthropic API key and test it.- The page allows testing the key to ensure it works.
- API keys are stored locally in the browser, not sent to a server.
-
Publish to the Chrome Web Store
Section titled “Publish to the Chrome Web Store”Package and submit the extension:
Terminal window zip -r sankey_stone.zip *Upload the ZIP file to the Chrome Web Store developer dashboard and follow the prompts.
Summary
Section titled “Summary”By following these transcript‑based steps, you can recreate the same workflow:
- Scaffold a Chrome extension with D3.js.
- Debug manifest and icon issues.
- Use agents to generate and refine code.
- Introduce multi‑agent parallel tasks for UI, data, and docs.
- Add interactivity, themes, and export options.
- Create an API key setup screen.
- Package and publish to the Chrome Web Store.