agentleFS
LangChainKnown publisherlangchain-ai/open-swe/openswe/bundled_skills/web-apps/SKILL.md

web-apps

Skill11k starsChanged 16 days agoMITView on GitHub

Build an app that runs in the Open SWE web UI, preview it beside the thread with preview_app, and release it with publish_app. Read this before building an Open SWE app or plugin.

  • Installs packages

1 other project uses a version of this.

Adopted by

Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projectsWeek of Oct 25: 0 new projectsWeek of Nov 1: 0 new projects
Sep 2026Oct 2026Nov 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 0 in all, so this is a hint, not a trend.

Most recently taken up by

Who's talking about langchain-ai/open-swe

The biggest 5 of 75 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 75

Talked about on GitHub, YouTube, Bluesky, Hacker News and the web (75 times).

On GitHub · 50

45 more on GitHub

On YouTube · 9

4 more on YouTube

On Bluesky · 9

4 more on Bluesky

On Hacker News · 4

On the web · 3

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When the person wants to keep it, call publish_app with the same file.

    line 60

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Open SWE apps

An app is one self-contained HTML file. The web UI runs it full screen from the person's sidebar, in a sandboxed frame with no network: it reaches storage, GitHub, live rooms and an agent only through the host API, as the person using it, within the permissions in its manifest.

The manifest

Embed it in the HTML as a JSON script:

<script type="application/openswe-plugin+json">
{
  "name": "standup-notes",
  "displayName": "Standup notes",
  "version": "0.1.0",
  "description": "Notes for the daily standup",
  "sidebar": { "label": "Standup", "icon": "notebook" },
  "permissions": ["storage"]
}
</script>
  • name: lowercase letters, digits and dashes. Publishing under the same name makes a new version of the same app.
  • sidebar.icon: one of puzzle-piece, notebook, file-text, book-open, kanban, chart-bar, chat-circle, calendar, lightbulb.
  • permissions: ask for the fewest. storage (JSON documents, private or per repository), realtime (live rooms with presence), github:read, github:write (branches, commits, pull requests), agent (a chat dock with tools the app provides).

Start from the starter

plugins/starter in langchain-ai/open-swe is an app ready to change: React, the Macaw design system (Open SWE's own components, which follow the web UI's light and dark theme), Tailwind, the plugin SDK, and a Vite build that writes the one self-contained file with manifest.json inside it. Macaw is published on npm; take the SDK and starter from the repository:

APPS=/workspace/.openswe-apps/open-swe
git clone --depth 1 --filter=blob:none --sparse https://github.com/langchain-ai/open-swe "$APPS"
git -C "$APPS" sparse-checkout set plugins/sdk plugins/starter
cp -r "$APPS/plugins/starter" "$APPS/plugins/<name>"
cd "$APPS/plugins/<name>" && npm install && npm run build

Clone it there, never over a checkout of the thread's own repository, and keep the app beside plugins/sdk, where its package.json finds the local SDK. Edit manifest.json and src/App.tsx; npm run build writes bundle/index.html, the file to preview. Build the UI from Macaw's components (@langchain/macaw-components/<Component>: Button, Card, Input, Select, Tabs, Dialog, Text and the rest) and its tokens (p-space-4, text-secondary, bg-surface-level-2) rather than your own styles, so the app looks like the web UI around it. The SDK's README.md and src/client.ts document the host API.

The frame's policy blocks every request, so a CDN script, a fetch or a font URL fails; the starter's build inlines everything.

Iterating

  1. Build, then call preview_app with bundle/index.html. The person sees it beside the thread and can chat with you from it.
  2. Change it, rebuild, call preview_app again. Each call replaces the build they see.
  3. When the person wants to keep it, call publish_app with the same file.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.