Chat with Claude to build apps. Use them together. Evolve them live. Claude runs parts of your app. Your code and Claude talk to each other. Ask Claude for improvements and Claude makes them appear; the app just stays running. Paste a job URL: Claude scrapes the details, fills the form, finds the salary and HQ even when they're not listed.
Frictionless
Version: 0.16.0
An app ecosystem for Claude. Share the love—or steal it.
Chat with Claude to build apps. Use them together. Evolve them live. Claude runs parts of your app. Your code and Claude talk to each other. Ask Claude for improvements and Claude makes them appear; the app just stays running. Paste a job URL: Claude scrapes the details, fills the form, finds the salary and HQ even when they're not listed.
Frictionless apps are fully hot-loadable. Lua backend, HTML templates. No recompiles. No restarts.
And your apps can even integrate with Claude: your apps poke Claude and Claude pokes back. Right in the state.
Apps for
- Quality of life — tame complex tasks with forms and buttons
- Claude Code life — point, click, Claude makes it so
- UNIX life — UIs for UNIX tools
- Life beyond Claude Code — expenses, habits, projects, whatever
- Dashboards — surface info at a glance
- Prototypes — functional wireframes at a fraction of the tokens
What does "fully" hot-loadable mean?
- Both front-end changes and backend changes are hot-loadable.
- All your state is in the backend and hotloading preserves it.
- You rename a field of a prototype, all its instances' fields get renamed.
- Yeah even structural changes to your data. That's what fully hot-loadable means.
How It Works
Built on ui-engine. Less complexity → fewer tokens:
- No API layer — no endpoints, no serialization, no DTOs
- No frontend code — just HTML templates with declarative bindings
- No sync wiring — change backend data, UI updates automatically—no code to detect or push changes
Claude writes your app logic and skips everything else. See overview for details.
Usage
Once installed, use /ui show to show the Frictionless console. You can build apps in the console.
Frictionless uses your project's .ui directory for its apps and content.
Building UIs in the CLI
Ask Claude to build a UI:
/ui-thorough make a contacts app with search and inline editing
Or display an existing app:
/ui show contacts
Using the App Console
The app-console is your home base for managing Frictionless apps. Use /ui show to open it.
Downloading apps from GitHub:
Click the GitHub icon in the header to download apps directly from GitHub repositories.

Viewing app details:
Select an app to see its requirements, open it, test it, or analyze it with Claude.

The bottom panel has two tabs:
- Chat — talk to Claude about the selected app
- Lua — run Lua code directly in your app's environment
Bundling
Create custom binaries with your site embedded:
frictionless bundle site/ -o my-ui-dir # Create bundled binary
frictionless ls # List bundled files
frictionless cat index.html # Show file contents
frictionless cp '*.lua' scripts/ # Copy matching files
frictionless extract output/ # Extract all bundled files to current directory
Available Apps
Job Tracker: Track job applications through the hiring pipeline. Paste a URL and Claude scrapes the details.
Documentation (in .ui by default)
- Intro — Introduction and overview
- Platform Reference — Architecture, tools, and quick start guide
- Viewdef Syntax — HTML template bindings (
ui-*attributes) - Lua API — Class patterns and globals
- Agent Workflow — Best practices for AI agents
- Themes — Theme switching and customization
Future Directions
App Permissions
Lua apps have filesystem access via io.open, which allows reading files without Claude Code permission prompts. While convenient, this could be misused to explore directories the user hasn't explicitly shared.
Planned guardrails:
- Apps declare required permissions in a manifest (e.g.,
app.json) - Permissions scoped to specific paths:
.claude/, project root, etc. - User approves permissions on first run
- Sandbox enforcement in the Lua environment
No comments yet.
Sign in to be the first to comment.
