Agent skill

Agentic UI Message Writer

by carlos-algms in carlos-algms/agentic.nvim

MANDATORY before editing MessageWriter, PermissionManager, tool-call block rendering, sender headers, thinking blocks, auto-scroll, folds, status rows, permission buttons, or chat-buffer tool-call…

MITAuto-check passed

Install Agentic UI Message Writer

skills CLI
$ npx skills add carlos-algms/agentic.nvim --skill agentic-ui-message-writer -a claude-code

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

GitHub CLI
$ gh skill install carlos-algms/agentic.nvim agentic-ui-message-writer --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/carlos-algms/agentic.nvim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/agentic-ui-message-writer .claude/skills/agentic-ui-message-writer && 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
agentic-ui-message-writer
GitHub stars
641
Token cost
~1.3k tokens
SKILL.md length
528 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

MANDATORY before editing MessageWriter, PermissionManager, tool-call block rendering, sender headers, thinking blocks, auto-scroll, folds, status rows, permission buttons, or chat-buffer tool-call…

  • SKILL.md covers Hard rules, Tool-call layout, Permission rows and Special write paths, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Agentic UI Message Writer is an agent skill from carlos-algms/agentic.nvim. MANDATORY before editing MessageWriter, PermissionManager, tool-call block rendering, sender headers, thinking blocks, auto-scroll, folds, status rows, permission buttons, or chat-buffer tool-call tests.

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

It works with Lua. The repository describes itself as: Agentic Chat Interface directly in Neovim with ACP providers from Claude-Code, Gemini, Codex, OpenCode, and Cursor-agent. The licence is MIT.

Example prompts

  • “/agentic-ui-message-writer”

What it can do on your machine

Read from SKILL.md and the folder at commit e280dee. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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

Agentic UI Message Writer loads about 1.3k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 528 words of instructions outside code blocks.

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

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 carlos-algms/agentic.nvim at commit e280dee, republished under its MIT licence (© carlos-algms). 528 words, ~1,292 tokens.

Download SKILL.mdSave it as .claude/skills/agentic-ui-message-writer/SKILL.md (or your agent's skills folder).
name
agentic-ui-message-writer
description
MANDATORY before editing MessageWriter, PermissionManager, tool-call block rendering, sender headers, thinking blocks, auto-scroll, folds, status rows, permission buttons, or chat-buffer tool-call tests.

Agentic UI Message Writer

This skill covers chat-buffer content state. For widget windows, layout, fallback windows, hidden floats, and buffer redirection, read lua/agentic/ui/AGENTS.md first.

Hard rules

  • wrap stays on.
  • Cursor positioning is G0zb, not G$zb.
  • Cursor sits on the trailing "" line below the last block, never inside a tool-call block.
  • scrolloff = 4 on chat keeps room for spinner virt_lines above the cursor.
  • Auto-scroll captures before mutation and applies after mutation in the same tick. No vim.schedule between them.
  • Tool-call body updates replace only the body between stable anchor pads.
  • Manual folds only. Never foldexpr; read ADR 0001 before proposing foldexpr workarounds.
  • tracker.rendered_button_count is render-path-only state.

Tool-call layout

text
row 0          header         rewritten on every update, NOT folded
row 1          "" top_pad     fold start anchor
row 2..M-1     body           replaced on every update
row M          "" bottom_pad  fold end anchor
row M+1..M+K   permission     K rows: N button rows + N empty spacer rows
row M+K+1      status row     real text, outside the fold
  • K = 2 * N for N permission options.
  • Permission rows are outside the fold.
  • MessageWriter:_render_permission_section owns all permission rows plus the status row.
  • Pads are unconditional.
  • Header is rewritten because providers send placeholder titles before final titles.

Permission rows

  • Buttons live one-per-row between bottom_pad and the status row.
  • Empty spacer rows sit between buttons, with one trailing spacer above the status row.
  • Digit keymaps are bound only while a block is focused.
  • Cycle keys and <CR> are row-gated to button rows or the focused block's status row.
  • Spacer rows fall through to default motion.
  • Focus transition repaints old and new status rows.

Regression anchors:

  • permission_manager.test.lua::digit keymap lifecycle::"rebinds digit keymaps with new mapping after focus transition"
  • permission_manager.test.lua::bracket cycle::"focus transition triggers exactly 2 status-row repaints"

Special write paths

Use only the normal write path outside these cases.

MethodWhen to use
write_structural_messageWelcome banner on session open; banner before restore
write_restoring_messagePer-message replay during session restore
replay_history_messagesProvider switch only; bulk repaint from in-memory history
  • Outside restore/provider-switch, use write_message_chunk or write_tool_call_block.
  • replay_history_messages does not re-issue ACP send_prompt.
  • Adding a bulk-write path requires a new row here and a test.

Sender classification

MessageWriter:_maybe_write_sender_header maps update.sessionUpdate to sender. New ACP update types must be classified here or they get no header.

text
user_message_chunk     -> user
agent_message_chunk    -> agent
agent_thought_chunk    -> agent
tool_call              -> agent
plan                   -> no header

Thinking blocks reuse one extmark in NS_THINKING. Any non-thought write must clear thinking state first or the next thought extends the wrong extmark.

Show full SKILL.md (192 more words)Show less

TodoList

  • TodoList owns ChatWidget.buf_nrs.todos.
  • It opens after diagnostics in WidgetLayout.
  • It is gated by Config.windows.todos.display.
  • It stays hidden until the first Plan event.
  • It auto-closes when all tasks complete.
  • It has no keymaps.

Traps

  • vim.schedule between mutation and G0zb: redraw can run with stale topline.
  • Replacing the whole tool-call range: manual fold dies.
  • Re-rendering tool-call body after tracker.diff exists: preview consistency breaks. Once a diff exists, refresh only header/status.
  • Overwriting status/button rows while permission is pending: buttons disappear until the next focus repaint. Use _render_permission_section.

Test invariants

Each invariant has an existing regression test. Deleting one is a behavior change.

  • Fold survives close and reopen.
  • Fold creation is gated by screen-row count.
  • Fold counts wrapped rows, not buffer lines.
  • Status row and permission rows are real text rendered per state.
  • Block range extmark grows by K on permission render.
  • Focus transition triggers exactly two status-row repaints.
  • Digit keymap dispatches the focused block option.
  • Bracket cycle wraps and no-ops when pending is empty.
  • Concurrent permission map preserves insertion order and supports out-of-order resolve.
  • Sender headers deduplicate consecutive same-sender writes.
  • Auto-scroll threshold preserves reading position and permission-row cursor.
  • Thinking state clears on non-thought writes.

© carlos-algms, 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 .agents/skills/agentic-ui-message-writer of carlos-algms/agentic.nvim.

Open the folder on GitHubat commit e280dee

Compare with similar skills

Agentic UI Message Writer 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.

Agentic UI Message Writer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Agentic UI Message Writer this skillcarlos-algms/agentic.nvim641—~1.3kAutomated safety check: PassMIT
Pandoc DOCX TemplateAchuan-2/pandoc_docx_template1.1k—~1kAutomated safety check: PassNone
Add Lua Binding Simplecataclysmbn/Cataclysm-BN1.3k—~846Automated safety check: PassCustom licence
Cpp Compiler FlagsSerial-Studio/Serial-Studio7.2k—~2.1kAutomated safety check: PassCustom licence
Luamakeactboy168/luamake210—~2kAutomated safety check: PassMIT
Lua Ecozhaojh329/lua-eco103—~1.7kAutomated safety check: PassMIT

Similar skills

  • Pandoc DOCX Template

    Achuan-2/pandoc_docx_template

    A skill your agent uses when converting Markdown to Word DOCX or DOCX back to Markdown with Pandoc, especially when the output should use the bundled Chinese Word reference templates, heading…

    1.1k GitHub stars~1k tokensUpdated 3 mo ago
    Documents & OfficeAuto-check passed
  • Add Lua Binding Simple

    cataclysmbn/Cataclysm-BN

    Add simple Cataclysm-BN Lua bindings for stringid types, enums, and basic read-only C++ types.

    1.3k GitHub stars~846 tokensUpdated today
    Auto-check passed
  • Cpp Compiler Flags

    Serial-Studio/Serial-Studio

    C++ compiler/linker flag guidance for Serial Studio's build (GCC, Clang, AppleClang, MSVC cl.exe, clang-cl, MinGW, IntelLLVM).

    7.2k GitHub stars~2.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Luamake

    actboy168/luamake

    Luamake 构建系统指南——用于当前项目的 luamake / make.lua / Ninja 生成流程。当用户需要编写、修改、排查或理解 make.lua、目标定义、lm:conf、deps / objdeps、代码生成、Lua C 模块、Bee 运行时集成,或需要解决当前项目中由 luamake 驱动的构建问题时,使用此 skill。即使用户没有明确提到…

    210 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Lua Eco

    zhaojh329/lua-eco

    International lua-eco public API skill for writing, reviewing, explaining, and fixing Lua 5.4 code that runs on the eco runtime.

    103 GitHub stars~1.7k tokensUpdated 9 days ago
    Backend & APIsAuto-check passed
  • Ss Cpp Modern

    Serial-Studio/Serial-Studio

    Modern C++20 authoring guidance for Serial Studio (Qt 6.11, C++20): concepts, ranges, move/RAII, std smart pointers, constexpr, lock-free SPSC atomics.

    7.2k GitHub stars~1.6k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from carlos-algms/agentic.nvim

All 8 skills in this repo
  • Agentic GitHub Discussion

    carlos-algms/agentic.nvim

    A skill your agent uses when creating, listing, or managing GitHub discussions in carlos-algms/agentic.nvim repository

    641 GitHub stars~1.1k tokensUpdated 2 days ago
    Auto-check passed
  • Agentic Acp Protocol Flow

    carlos-algms/agentic.nvim

    MANDATORY before editing ACPClient, ACPTransport, AgentInstance, ACP provider flow, tool-call parsing, permission requests, provider switch, reconnect, or ACP subprocess lifecycle in agentic.nvim.

    641 GitHub stars~636 tokensUpdated 2 days ago
    Auto-check passed
  • Agentic Testing

    carlos-algms/agentic.nvim

    MANDATORY before creating, editing, or reviewing tests in agentic.nvim, and before behavior changes that require TDD.

    641 GitHub stars~828 tokensUpdated 2 days ago
    Auto-check passed
  • Agentic Vimdoc

    carlos-algms/agentic.nvim

    A skill your agent uses when writing or updating agentic.nvim vimdoc (doc/agentic.txt), or after changing init.lua, configdefault.lua, theme.lua, or README install/keymaps - those edits require a…

    641 GitHub stars~298 tokensUpdated 2 days ago
    Auto-check passed
  • Agentic Acp Docs And Schema

    carlos-algms/agentic.nvim

    A skill your agent uses when ACP schema is necessary to clarify the work or when the user asks for ACP data, rules, events, or documentation

    641 GitHub stars~468 tokensUpdated 2 days ago
    Auto-check passed
  • Agentic Lua Class

    carlos-algms/agentic.nvim

    MANDATORY before writing or editing ANY .lua file in this repo - classes, methods, fields, functions, or LuaCATS annotations.

    641 GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Agentic UI Message Writer

What does Agentic UI Message Writer do?

MANDATORY before editing MessageWriter, PermissionManager, tool-call block rendering, sender headers, thinking blocks, auto-scroll, folds, status rows, permission buttons, or chat-buffer tool-call…. nvim. MANDATORY before editing MessageWriter, PermissionManager, tool-call block rendering, sender headers, thinking blocks, auto-scroll, folds, status rows, permission buttons, or chat-buffer tool-call tests.

How do I install Agentic UI Message Writer in Claude Code?

Run `npx skills add carlos-algms/agentic.nvim --skill agentic-ui-message-writer -a claude-code`. Or copy the skill folder (.agents/skills/agentic-ui-message-writer in carlos-algms/agentic.nvim) into .claude/skills/agentic-ui-message-writer in your project. Claude Code loads it when a task matches its description.

How do I install Agentic UI Message Writer in Codex?

Run `npx skills add carlos-algms/agentic.nvim --skill agentic-ui-message-writer -a codex`. Or copy the skill folder (.agents/skills/agentic-ui-message-writer in carlos-algms/agentic.nvim) into .agents/skills/agentic-ui-message-writer in your project. Codex loads it when a task matches its description.

Can I use Agentic UI Message Writer 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 carlos-algms/agentic.nvim --skill agentic-ui-message-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agentic-ui-message-writer, .gemini/skills/agentic-ui-message-writer, .github/skills/agentic-ui-message-writer and .opencode/skills/agentic-ui-message-writer in your project.

What does Agentic UI Message Writer need to run?

SKILL.md names no scripts, command-line tools or credentials: Agentic UI Message Writer is instructions for the agent only.

Does Agentic UI Message Writer 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 Agentic UI Message Writer 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 Agentic UI Message Writer use?

Agentic UI Message Writer 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 Agentic UI Message Writer use?

About 1.3k tokens (SKILL.md is roughly 5.2k 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 Agentic UI Message Writer?

Skills that share tags, products or a category with Agentic UI Message Writer: Pandoc DOCX Template (Achuan-2/pandoc_docx_template, 1.1k stars), Add Lua Binding Simple (cataclysmbn/Cataclysm-BN, 1.3k stars), Cpp Compiler Flags (Serial-Studio/Serial-Studio, 7.2k stars) and Luamake (actboy168/luamake, 210 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Agentic UI Message Writer?

carlos-algms (a GitHub user) maintains it in carlos-algms/agentic.nvim, which has 641 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 7, 2026.

Source: carlos-algms/agentic.nvim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.