Install
$ agentstack add mcp-odvcencio-fluffyui ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README — it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
FluffyUI
The most comprehensive TUI framework for Go.
88 widgets. CSS-like styling. Built-in accessibility. AI-ready.
[](https://pkg.go.dev/m31labs.dev/fluffyui) [](https://github.com/odvcencio/fluffyui/actions/workflows/ci.yml) [](https://github.com/odvcencio/fluffyui/actions/workflows/release.yml) [](https://goreportcard.com/report/github.com/odvcencio/fluffyui) [](LICENSE)
Agent Skill
Agents working with FluffyUI should use the using-fluffyui skill.
How does FluffyUI compare?
| Feature | FluffyUI | Bubble Tea | Textual | Ratatui | |---------|----------|------------|---------|---------| | Language | Go | Go | Python | Rust | | Widgets | 88 | ~15 | ~40 | ~15 | | CSS-like Styling | Yes (FSS) | No | Yes | No | | Layout Engine | Flexbox + Grid | Manual | CSS Grid | Manual | | Accessibility | ARIA + TTS | No | No | No | | AI Agent (MCP) | 145+ tools | No | No | No | | GPU Rendering | 4 backends | No | No | No | | Reactive State | Signal[T] | Elm (TEA) | Reactive | Manual | | Web Backend | WebSocket | No | textual-web | No | | Hot Reload | Yes | No | Yes | No |
Quick Start
package main
import "m31labs.dev/fluffyui/fluffy"
func main() {
app, _ := fluffy.NewApp(
fluffy.WithRoot(fluffy.VStack(
fluffy.Label("Hello, FluffyUI!"),
fluffy.PrimaryButton("Click me", func() {
// Your logic here
}),
)),
)
app.Run()
}
Installation
go get m31labs.dev/fluffyui@latest
Requirements: Go 1.24 or later.
FluffyUI is released under the [MIT License](LICENSE).
Scaffold a new project:
go install m31labs.dev/fluffyui/cmd/fluffy@latest
fluffy create my-app --template full
cd my-app && go run .
Widget Catalog
88 widgets organized into six categories:
| Category | Count | Highlights | |----------|-------|------------| | Input | 18 | Button, Input, TextArea, Select, Slider, DatePicker, TimePicker, ColorPicker, TagInput, Rating | | Data | 14 | Table, DataGrid, List, Tree, DirectoryTree, Log, RichText, MarkdownViewer, Heatmap, Image | | Layout | 12 | Grid, Flex, Stack, Splitter, ScrollView, Panel, AspectRatio, Drawer, FocusTrap, Sidebar | | Navigation | 12 | Tabs, Menu, Breadcrumb, Stepper, CommandPalette, Accordion, Pagination, Link, SkipNav | | Feedback | 16 | Dialog, Alert, ToastStack, Spinner, Progress, Sparkline, BarChart, LineChart, Badge, Skeleton | | Utility | 16 | Inspector, DebugOverlay, PerformanceDashboard, VideoPlayer, Canvas, GPUCanvas, Tooltip, Popover |
Full catalog: [docs/widgets/overview.md](docs/widgets/overview.md)
Styling with FSS
FluffyUI's stylesheet language (FSS) brings CSS-like styling to the terminal with hot reload:
Button {
background: #3b82f6;
color: white;
padding: 0 2;
border: rounded;
}
Button:hover {
background: #2563eb;
}
Button.danger {
background: #ef4444;
}
app, _ := fluffy.NewApp(
fluffy.WithStylesheet("styles.fss"),
)
Supports selectors, pseudo-classes, transitions, min/max sizing, flexbox properties, and live reload during development with fluffy dev.
Reactive State
Type-safe signals with automatic UI updates:
count := state.NewSignal(0)
// Derived values recompute automatically
doubled := state.NewComputed(func() int {
return count.Get() * 2
})
// Widgets observe signals and re-render on change
count.Set(42) // UI updates automatically
Accessibility
ARIA roles, screen reader announcements, and TTS built into every widget:
// Every widget implements accessibility.Accessible
widget.AccessibleRole() // "button", "textbox", "grid", ...
widget.AccessibleName() // Human-readable label
widget.AccessibleState() // Focused, selected, expanded, ...
- 40+ ARIA roles (WAI-ARIA 1.2/1.3)
- 14 extended ARIA properties
- TTS backends: espeak, SSIP (Linux), say (macOS), SAPI (Windows)
- Focus management with visible indicators
- Screen reader announcements across 67+ widget interaction points
AI Agent Integration (MCP)
FluffyUI exposes 145+ MCP tools so AI agents can read, navigate, and control your TUI:
import "m31labs.dev/fluffyui/agent"
srv, _ := agent.NewServer(agent.ServerOptions{
Addr: "unix:/tmp/fluffyui.sock",
App: app,
})
go srv.Serve(ctx)
Three transports (stdio, SSE, Unix socket), 52 read tools, 56+ write tools, batch execution, and a built-in agent cookbook. See the [AI Agent Tutorial](docs/tutorials/04-ai-agent-integration.md).
Graphics and Animation
- Canvas API -- sub-cell drawing with Braille, Sextant, Quadrant, and ASCII blitters
- GPU rendering -- Metal, OpenGL, WebGL, and Software backends
- Animation -- tweens (10 easing functions), physics springs, particle systems
- Transforms -- translate, rotate, scale with save/restore
More Features
- Dev Loop -- hot-reload with
fluffy dev -- go run . - Web Backend -- serve your TUI over WebSocket with auth and TLS
- Keybindings -- registry-based commands with modes and stacking
- Recording -- capture sessions as asciicast, export to video
- Testing -- simulation backend for deterministic, headless tests
- Clipboard -- OSC-52, platform tools, memory fallback (auto-detected)
- i18n -- localization bundles and runtime wiring
- Plugins -- lightweight registry for third-party widgets
Examples
go run ./examples/candy-wars # Showcase trading game
go run ./examples/todo-app # Full CRUD app
go run ./examples/dashboard # Data visualization
go run ./examples/fireworks-demo # 3D particle effects
go run ./examples/widget-gallery # Complete widget sampler
38 example apps in examples/ covering every feature area. See [docs/EXAMPLES.md](docs/EXAMPLES.md) for the full list.
Documentation
| Guide | Description | |-------|-------------| | [Getting Started](docs/getting-started.md) | Installation and first app | | [Architecture](docs/architecture.md) | Core concepts and render pipeline | | [Widget Catalog](docs/widgets/overview.md) | All 88 widgets with usage | | [Styling (FSS)](docs/theming.md) | Stylesheets, themes, transitions | | [Accessibility](docs/accessibility.md) | Roles, announcements, TTS | | [Agent Integration](docs/tutorials/04-ai-agent-integration.md) | MCP tools and transports | | [Testing](docs/testing.md) | Simulation backend and helpers | | [Performance](docs/performance.md) | Profiling and optimization | | [Bubble Tea Migration](docs/migration/bubbletea.md) | Moving from Bubble Tea | | [API Reference](docs/api/index.md) | Package-level documentation |
Contributing
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](CODEOFCONDUCT.md).
License
See the repository for license information.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: odvcencio
- Source: odvcencio/FluffyUI
- License: MIT
- Homepage: https://m31labs.dev/fluffyui
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.