Row-Bot is a local-first desktop AI assistant that combines language models with memory and tools for working across files, repositories, workflows, and communication channels. It is intended for people who want an assistant that can run locally while keeping application data on their machine.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/siddsachar/row-bot/designer_guidenpx skills add siddsachar/row-bot --skill designer_guidegit clone --depth 1 https://github.com/siddsachar/row-botWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/siddsachar/row-bot/designer_guide)<a href="https://agentmods.dev/skills/siddsachar/row-bot/designer_guide"><img src="https://agentmods.dev/badge/skills/siddsachar/row-bot/designer_guide.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00016 | $0.04463 |
| Opus 5 | $0.00008 | $0.02232 |
| Sonnet 5 | $0.00003 | $0.00893 |
| Haiku 4.5 | $0.00002 | $0.00446 |
Grade A, and why
designer_guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 176 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DESIGNER TOOL:
- You have designer tools that create/edit multi-page visual designs.
- Each project has a mode, a canvas aspect ratio, multi-page content, and an optional brand config.
- All designs are rendered as HTML/CSS in a sandboxed iframe preview.
Project modes (pick one — the mode dictates layout, canvas, and tool surface)
| mode | What it produces | page_kind | Default aspect | Canvas behaviour |
|---|---|---|---|---|
deck |
Slide deck (16:9 / 4:3 / 1:1 / 9:16) | slide | 16:9 (1920×1080) | Fixed body — width:Wpx; height:Hpx; overflow:hidden. Each page is a single slide. |
document |
A4 / Letter document pages | slide | A4 (794×1123) | Fixed page body — same fixed-frame rules as deck. |
landing |
Tall scrollable landing page | screen | landing (1440×3200 hint) | Tall scrollable. Use html,body{min-height:100vh;overflow-x:hidden} and a .page{max-width:1440px;margin:0 auto} wrapper. NEVER set body{overflow:hidden} or fixed pixel height. Use responsive units (vw, clamp(), %). |
app_mockup |
Phone or desktop UI prototype | screen | phone (390×844) | One device viewport per page/route. html,body{width:Wpx;height:Hpx;overflow:hidden}. In-content scrolling goes inside an inner .screen-body{overflow-y:auto}. |
storyboard |
Cinematic shot-by-shot board | shot | 16:9 (1920×1080) | Fixed-frame like deck. Each page = one shot with beat / caption / camera direction. |
The user picks mode in the New Design dialog. You can read it with designer_get_project and change it with designer_set_mode. Switching modes does NOT auto-resize the canvas — call designer_resize_project after designer_set_mode if you also want a different aspect.
Core page operations
designer_set_pages: Replace ALL pages. Use for new projects or full reworks. Input: list of{html, title, notes}.designer_update_page: Update a single page HTML. Input:index,html, optionaltitle.designer_add_page: Insert a new page. Useindex=-1to append.designer_delete_page: Remove a page by index. DESTRUCTIVE — requires user approval.designer_move_page: Reorder a page. Input:from_index,to_index.designer_get_project: Read project summary (mode, page titles, brand, dimensions). Call before any multi-page edit.designer_get_page_html: Read the full stored HTML for a single page. Call before full-page rewrites so you preserve existing assets and layout.designer_get_reference: Read a saved project reference by id or filename so you can reuse prior attachments without asking again.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 176 lines · 16 tokens per session scan A 3f920bf856ee
designer_guide is a skill published in the GitHub repository siddsachar/row-bot (1,487 stars, last pushed 7d ago), licensed Apache-2.0. It adds 16 tokens to every session and 4,463 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
rich-post
Send a Telegram rich-media post to ANOTHER allowlisted chat via the bot (Bot API 10.1 sendRichMessage) - text, inline images, tables, headings, lists, quotes, collapsible blocks, formulas, collages/slideshows ALL in one message bubble. Use when the owner asks to post somewhere other than the current conversation (the…
telegram-userbot
Подключение и работа с личным Telegram-аккаунтом владельца (userbot, НЕ бот). Используй, когда просят читать личные чаты/переписку/диалоги, искать по своим сообщениям, писать кому-то от своего имени, «зайди в мой телеграм», «подключи мой телеграм», «прочитай личку», «ответь в личке», «перешли сообщение», а также при…
memory-processor
Iva's daily-memory processor. Reads the day's two-sided transcript (daily/YYYY-MM-DD.md), distills noteworthy entities / decisions / ideas into typed autograph cards, links them into the graph, and produces a daily-summary card (topics + MOC) that navigates down to the raw transcript and up to the week. Model-agnostic…
agent-browser
Браузерная автоматизация для интерактивных веб-задач. Используй, когда нужно открыть сайт, заполнить форму, кликнуть, сделать скриншот, залогиниться, спарсить JS-страницу или протестировать веб-приложение. Триггеры — «зайди на сайт», «заполни форму», «нажми кнопку», «скриншот страницы», «войди в аккаунт», «спарси…
update-recovery
Restore or merge user customizations preserved during an Iva update. Use when the owner says "restore my update changes", "recover my customizations", «верни мои изменения после обновления», «восстанови мои доработки» or asks about an update conflict.
security-defense
Procedures for handling untrusted content, suspected prompt injection, secret exposure, data exfiltration, and manual security inspection. Use for emails, web pages, forwarded messages, webhooks, group content, or a suspected leak. Do not use as a general claim that every command or model call is automatically…