Skip to content
Agentmart
Submit a tool

write-go-bubble-tea

Writes or updates Go terminal interfaces using Bubble Tea.

Skill by cyberphor

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/cyberphor-write-go-bubble-tea

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Writes or updates Go terminal interfaces using Bubble Tea. Use when asked to create or update model commands, messages, rendering, or terminal lifecycle behavior.

Use cases: writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/write-go-bubble-tea

What's inside

Skill name
write-go-bubble-tea
Description
Writes or updates Go terminal interfaces using Bubble Tea. Use when asked to create or update model commands, messages, rendering, or terminal lifecycle behavior.
License
MIT
Instructions
47 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# How to Write a Go Bubble Tea App

Read and apply `write-go-code` from the active skill catalog or [sibling skill](../write-go-code/SKILL.md) for Go style, package organization, errors, and Makefiles. Reuse it if already loaded.

Inspect `go.mod`, imports, existing models, component dependencies, and tests before selecting APIs. Preserve the installed major version unless migration is requested. Check Bubbles and Lip Gloss compatibility when using those libraries.

## Version Boundaries

Do not mix these API families:

| API | Bubble Tea v1 | Bubble Tea v2 |
| --- | --- | --- |
| Import | `github.com/charmbracelet/bubbletea` | `charm.land/bubbletea/v2` |
| View | `View() string` | `View() tea.View` |
| Key presses | `tea.KeyMsg` | `tea.KeyPressMsg` |
| Alternate screen | Program options such as `tea.WithAltScreen()` | The returned view's `AltScreen` field |

Both use `Init() tea.Cmd` and `Update(tea.Msg) (tea.Model, tea.Cmd)`. In v2, construct rendered views with the supported `tea.View` API, such as `tea.NewView(content)`. Consult the installed version's documentation for terminal options and message fields rather than adapting signatures from another major version.

## Model and Effects

Keep UI state in the model. Use `Init` for initial commands, `Update` to process messages and change state, and `View` to render that state. Keep `Update` and `View` free of blocking I/O, sleeps, and long-running work.

Perform asynchronous work through commands that return result or error messages. Capture immutable inputs or explicit copies when creating commands. Do not mutate the model or shared maps, slices, or component state from command goroutines. Apply results in `Update`, retaining original errors in error messages.

Use `tea.Batch` for independent commands without assuming completion order. Use the installed version's sequencing primitive when effects truly require ordering. Track request identity or cancellation when stale results could overwrite newer state. Return child-component commands when forwarding messages to components.

## Interaction and Lifecycle

Handle keyboard input according to focus so global bindings do not consume normal text entry. Provide the requested quit behavior through `tea.Quit`, preserving framework terminal cleanup. Handle window-size messages and narrow terminal layouts without assuming fixed dimensions.

Keep normal diagnostic output from corrupting the active terminal renderer. Display recoverable failures in the model and propagate fatal program errors through the existing entrypoint. Bound external work and cancel owned background activity when the program exits.

## Verification

Run `gofmt` and relevant project checks and tests. When behavior warrants tests, feed deterministic key, resize, success, and failure messages into `Update` and assert observable state or rendered output. Verify effects separately with controlled inputs instead of timing-dependent terminal tests. Use the race detector when changed shared-state behavior warrants it.

For an interactive change, verify focus, resizing, the relevant loading or error state, quitting, and terminal restoration in a real terminal when available. Report what was tested and any terminal limitations.

## Official References

* [Bubble Tea](https://github.com/charmbracelet/bubbletea) for current architecture and examples.
* [Bubble Tea v1 reference](https://github.com/charmbracelet/bubbletea/tree/v1.3.10) for the v1 API family. Consult the project's exact version when needed.
* [v2 upgrade guide](https://github.com/charmbracelet/bubbletea/blob/main/UPGRADE_GUIDE_V2.md) for import, view, input, and terminal API differences.
* [Commands tutorial](https://github.com/charmbracelet/bubbletea/tree/main/tutorials/commands) for command and message separation.

From cyberphor/skills, MIT.

More from cyberphor/skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 17, 2026 (12 days ago)
Last release
Oct 22, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from cyberphor

Cite this page

write-go-bubble-tea skill. Agent Mart. https://agentmart.dev/skills/cyberphor-write-go-bubble-tea (last updated 2026-10-24)