Agent skill

Client Marchat

by Cod-e-Codes in Cod-e-Codes/marchat

Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior.

MITAuto-check passedBackend & APIs

Install Client Marchat

skills CLI
$ npx skills add Cod-e-Codes/marchat --skill client-marchat -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Cod-e-Codes/marchat client-marchat --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/client-marchat .claude/skills/client-marchat && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
client-marchat
GitHub stars
137
Token cost
~1.5k tokens
SKILL.md length
627 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior.

  • Editing client/
  • SKILL.md covers Patterns, Transcript rendering (render.go), Testing and Protocol, plus 1 more section
  • Calls osascript and go
  • Bubble Tea models

What it does

Client Marchat is an agent skill from Cod-e-Codes/marchat. Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior. Use when editing client/, Bubble Tea models, :commands, themes, notifications, or client configuration paths.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Realtime and WebSockets. The repository describes itself as: Terminal chat for developers: Go WebSocket server + Bubble Tea TUI client, optional E2E, reactions, DMs, channels, plugins, files, code snippets, admin UI. Backends: SQLite… The licence is MIT.

When your agent uses it

  • Editing client/
  • Bubble Tea models
  • Client configuration paths

Example prompts

  • “Use the client-marchat skill to implement marchat terminal client TUI, commands, keystore, and WebSocket client behavior”
  • “/client-marchat”

What it can do on your machine

Read from SKILL.md and the folder at commit 3440f09. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • osascript
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Client Marchat loads about 1.5k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 627 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Cod-e-Codes/marchat at commit 3440f09, republished under its MIT licence (© Cod-e-Codes). 627 words, ~1,487 tokens.

Download SKILL.mdSave it as .claude/skills/client-marchat/SKILL.md (or your agent's skills folder).
name
client-marchat
description
Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior. Use when editing client/, Bubble Tea models, :commands, themes, notifications, or client configuration paths.
paths
client/**

Client (marchat)

Bubble Tea + Lipgloss TUI on Charm v2 (charm.land/bubbletea/v2, bubbles/v2, lipgloss/v2). Entry: client/main.go; split across render.go, commands.go, hotkeys.go, websocket.go, scroll_input.go, cli_output.go, notification_manager.go, etc.

Patterns

  • Charm v2: newMainTeaView sets AltScreen, MouseModeCellMotion (disabled while Shift is held for terminal drag-select), and tea.View.BackgroundColor (altScreenFill / black). chromeComposerPanel is full-width with theme Input background only (textarea styles are foreground-only). Transcript interior uses transcriptFill on Box. configureTextareaChrome syncs textarea colors with theme Input. Multiline composer: Ctrl+J via textarea.Update; up/down move cursor when value contains \n, else scroll chat. KeyPressMsg / KeyReleaseMsg; bubbles use SetWidth / SetHeight / SetStyles.
  • Reconnect: exponential backoff (capped at 30s); delay resets only after successful connect (wsConnected), not each Init() retry; no reconnect on fatal username/handshake errors (websocket.go, main.go).
  • Commands: :q quits; Esc closes menus; help in commands.go (shortcuts vs text commands). Transient command results belong in the banner when short; longer lists (e.g. :themes) may use transcript System lines.
  • E2E: same wire path for channel text and DMs when encryption on; files via keystore EncryptRaw / DecryptRaw. Do not log plaintext on send/decrypt paths.
  • Message size: composer, :dm, code snippets, :edit, and :search reject content above MARCHAT_MAX_MESSAGE_BYTES / MARCHAT_MAX_MESSAGE_MB (default 32 KiB) before send. E2E checks plaintext, then the base64 wire string. Oversized input stays in the composer (snippets stay open). Close 1009 is a generic message-too-big error. :export is local and is not capped.
  • Config: MARCHAT_CONFIG_DIR / ResolveClientConfigDir(); keystore path resolution and migration in client/config/config.go.
  • Chrome: terminal-native labels; no decorative lock emoji in UI chrome (user content may include emoji).
  • Metadata: Alt+M or :msginfo toggles message id and encrypted flag per line (render.go).
  • Notifications: bell, desktop (Alt+N), :notify-mode, :quiet, :focus (notification_manager.go, notification_desktop.go). Windows: Go-built toast XML + powershell -EncodedCommand; macOS: strconv.Quote for osascript -e; Linux: notify-send argv args.
  • Pre-TUI output: colorized stdout via cli_output.go unless NO_COLOR.
Show full SKILL.md (337 more words)Show less

Transcript rendering (render.go)

  • Word wrap: wrapStyledBlock + ansi.Wrap at viewport width; preserves ANSI codes.
  • URLs: prepareURLWrapping (non-breaking hyphens in hosts), markURLsForWrap / applyURLMarkers so hyperlink color, underline, and OSC 8 sequences survive line breaks with the full href on every wrapped fragment. Mouse click-to-open (findURLAtClickPosition) remains as fallback when OSC 8 is unavailable. Copy from message still works everywhere.
  • Scroll input: activeScrollViewport routes keyboard and MouseWheelMsg to help, DB menu, chat, or user list viewports; list modals (file picker, code-snippet language) handle wheel via CursorUp/CursorDown. Help and DB menu overlays (overlayCapturesKeyboard) swallow non-scroll keys so chat typing indicators, URL clicks, and read-receipt flush do not fire while browsing overlay content; maybeFlushReadReceipt only runs when the chat transcript viewport is active and at bottom.
  • Sort order: sortMessagesByTimestamp / messageLess - persisted chat by message_id, server System (message_id == 0) by created_at, client-local System (negative message_id) after persisted chat.
  • Ephemeral System feedback: isTranscriptSystemNotice / isTranscriptSystemMessage route command errors and one-line server replies (e.g. admin-only denial) to the banner; multi-line search, themes, and channel notices stay in the transcript. Negative message_id transcript notices are classified by content (isTranscriptSystemNotice), not ID sign alone. pruneEphemeralSystemMessages clears stale ephemeral lines on send or inbound persisted chat.
  • Client-local System lines: negative message_id via appendClientSystemMessage for transcript notices only (with active channel set); short client usage/errors go to banner through appendClientSystem.

Testing

  • Inject tea.Msg in tests; no real terminal.
  • client/testmain_test.go: lipgloss.Writer.Profile = colorprofile.ANSI256 so headless render/hyperlink tests emit real SGR and OSC 8 sequences.
  • client/render_test.go: URL wrap, OSC 8 hyperlink markers (\x1b]8;;), underline on wrapped segments, system line severity, wrap width; URL click helpers (buildTranscriptLineURLs, findURLAtTranscriptClick) are headless fallback-path coverage.
  • client/main_test.go: DM/channel filters, unread, client system prune/sort, reconnect backoff, URL click hit/miss (single-line, headless), E2E search hint.
  • client/scroll_input_test.go: scroll target selection, help viewport wheel handling, overlay input capture, read-receipt scoping, viewport dimension helpers
  • client/websocket_e2e_test.go, keystore_test.go, config_test.go, notification_manager_test.go (desktop notification escaping).
  • See testing-marchat skill.

Protocol

Outbound/inbound shapes must match PROTOCOL.md (protocol-marchat skill). Negative message_id is client-only; never send on the wire.

Doctor

go run ./client -doctor reports profiles, keystore, E2E key source, dm_state.json.

© Cod-e-Codes, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .cursor/skills/client-marchat of Cod-e-Codes/marchat.

Open the folder on GitHubat commit 3440f09

Compare with similar skills

Client Marchat next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Client Marchat compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Client Marchat this skillCod-e-Codes/marchat137—~1.5kAutomated safety check: PassMIT
Supabase Development and Debuggingsupabase/agent-skills2.7k3 repos~3.6kAutomated safety check: PassMIT
Use Yaakmountain-loop/yaak19k—~1.9kAutomated safety check: PassMIT
Gemini Live API Devgoogle-gemini/gemini-skills4.3k—~4.6kAutomated safety check: PassApache-2.0
Web3 PolymarketPolymarket/agent-skills1912 repos~2kAutomated safety check: PassNone
GraphQL ArchitectJeffallan/claude-skills12k1 repos~1.3kAutomated safety check: PassMIT

Similar skills

  • Official

    General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.

    2.7k GitHub starsUsed in 3 repos~3.6k tokens
    Backend & APIsAuto-check passed
  • Use Yaak

    mountain-loop/yaak

    A skill your agent uses when the user mentions Yaak, a Yaak workspace, or the yaak command, or asks to call, hit, or smoke test HTTP/REST endpoints, save or organize API requests for reuse or manual…

    19k GitHub stars~1.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • Gemini Live API Dev

    google-gemini/gemini-skills

    Official

    A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live.

    4.3k GitHub stars~4.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Web3 Polymarket

    Polymarket/agent-skills

    Polymarket integration for prediction market trading on Polygon.

    191 GitHub starsUsed in 2 repos~2k tokens
    Backend & APIsAuto-check passed
  • GraphQL Architect

    Jeffallan/claude-skills

    Designs GraphQL schemas and Apollo Federation graphs, with DataLoader resolvers, subscriptions, query complexity limits and caching.

    12k GitHub starsUsed in 1 repo~1.3k tokens
    Backend & APIsAuto-check passed
  • Broker Integration

    marketcalls/openalgo

    Integrate a new Indian broker into OpenAlgo, or modify an existing broker plugin.

    2.8k GitHub stars~4.7k tokensUpdated today
    Backend & APIsAuto-check: notes

More from Cod-e-Codes/marchat

All 11 skills in this repo
  • Debugging Marchat

    Cod-e-Codes/marchat

    Diagnoses marchat client and server issues using -doctor, env configuration, and logs.

    137 GitHub stars~668 tokensUpdated 4 days ago
    Auto-check: notes
  • Developing Marchat

    Cod-e-Codes/marchat

    Implements and refactors marchat Go code with project toolchain and quality gates.

    137 GitHub stars~870 tokensUpdated 4 days ago
    Auto-check passed
  • Git Workflow Marchat

    Cod-e-Codes/marchat

    Drafts conventional commit messages and pull request bodies for marchat without committing or pushing unless explicitly requested.

    137 GitHub stars~482 tokensUpdated 4 days ago
    Auto-check: notes
  • Testing Marchat

    Cod-e-Codes/marchat

    Writes and runs marchat tests with race detection, coverage, and dialect smoke patterns.

    137 GitHub stars~802 tokensUpdated 4 days ago
    Auto-check passed
  • Database Marchat

    Cod-e-Codes/marchat

    Changes marchat SQL schema and queries across SQLite, PostgreSQL, and MySQL using dialect helpers.

    137 GitHub stars~985 tokensUpdated 4 days ago
    Auto-check passed
  • Plugins Marchat

    Cod-e-Codes/marchat

    Develops and maintains marchat plugins: SDK, host IPC, manager install path, store downloads, and Ed25519 licenses.

    137 GitHub stars~558 tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Client Marchat

What does Client Marchat do?

Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior. Client Marchat is an agent skill from Cod-e-Codes/marchat. Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior.

When should I use Client Marchat?

Client Marchat fits situations like: editing client/; bubble Tea models; client configuration paths.

How do I install Client Marchat in Claude Code?

Run `npx skills add Cod-e-Codes/marchat --skill client-marchat -a claude-code`. Or copy the skill folder (.cursor/skills/client-marchat in Cod-e-Codes/marchat) into .claude/skills/client-marchat in your project. Claude Code loads it when a task matches its description.

How do I install Client Marchat in Codex?

Run `npx skills add Cod-e-Codes/marchat --skill client-marchat -a codex`. Or copy the skill folder (.cursor/skills/client-marchat in Cod-e-Codes/marchat) into .agents/skills/client-marchat in your project. Codex loads it when a task matches its description.

Can I use Client Marchat in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Cod-e-Codes/marchat --skill client-marchat -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/client-marchat, .gemini/skills/client-marchat, .github/skills/client-marchat and .opencode/skills/client-marchat in your project.

What does Client Marchat need to run?

Going by SKILL.md and its folder, Client Marchat needs the command-line tools its instructions call (osascript and go).

Does Client Marchat access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Client Marchat safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Client Marchat use?

Client Marchat is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Client Marchat use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Client Marchat?

Skills that share tags, products or a category with Client Marchat: Supabase Development and Debugging (supabase/agent-skills, 2.7k stars), Use Yaak (mountain-loop/yaak, 19k stars), Gemini Live API Dev (google-gemini/gemini-skills, 4.3k stars) and Web3 Polymarket (Polymarket/agent-skills, 191 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Client Marchat?

Cod-e-Codes (a GitHub user) maintains it in Cod-e-Codes/marchat, which has 137 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 3, 2026.

Source: Cod-e-Codes/marchat on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.