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 commands/wasintoh/toh-framework/toh-linegit clone --depth 1 https://github.com/wasintoh/toh-frameworkWrote 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/commands/wasintoh/toh-framework/toh-line)<a href="https://agentmods.dev/commands/wasintoh/toh-framework/toh-line"><img src="https://agentmods.dev/badge/commands/wasintoh/toh-framework/toh-line.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.00013 | $0.01634 |
| Opus 5 | $0.00006 | $0.00817 |
| Sonnet 5 | $0.00003 | $0.00327 |
| Haiku 4.5 | $0.00001 | $0.00163 |
Grade A, and why
toh-line 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 — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/toh-line — Convert to LINE MINI App 💚
/toh-line → แปลงแอปปัจจุบันเป็น LINE MINI App (default — ไม่ต้องพิมพ์อะไรต่อ)
/toh-line [feature] → convert + เพิ่ม feature LINE (share, message, rich menu ฯลฯ)
🧭 IRON RULE
แอปเป็น web อยู่แล้ว — งาน convert จริงๆ มีนิดเดียว: หุ้มด้วย LIFF แล้วปรับ UX ห้าม hardcode เวอร์ชัน SDK / ห้ามลอก snippet เก่า — ดึง docs จริงก่อนเขียนโค้ดทุกครั้ง LIFF = ตัว SDK (
@line/liff) ที่ยังใช้อยู่ · LINE MINI App = channel type ใหม่ที่เราสร้าง (แทน LINE Login + LIFF-app แบบเก่า)
Flow: DOC CHECK → WRAP → ADAPT UX → CHANNEL → VERIFY
1. DOC CHECK ก่อนเสมอ (สำคัญสุด)
ดึง docs ปัจจุบันจาก developers.line.biz ผ่าน Context7 (/websites/developers_line_biz_en_reference_liff) หรือ web fetch:
- SDK version ล่าสุด + วิธีติดตั้ง —
npm i @line/liff(ตรึง version ตาม docs) หรือ CDN edgehttps://static.line-scdn.net/liff/edge/2/sdk.js(ได้ v2 ล่าสุดเสมอ) - API ที่จะใช้ (
liff.init,isInClient,isLoggedIn,getProfile,shareTargetPicker,sendMessages) — เช็ค signature จาก reference จริง ไม่เดาจากความจำ - เช็ค release notes ว่ามี method ใหม่/deprecated อะไร แล้วค่อยเขียนโค้ด
2. WRAP — หุ้มแอปเดิมด้วย LIFF
lib/liff.ts—initializeLiff()+ helper (isInLiff,getProfile,shareMessage,closeLiff) ตาม API ที่เพิ่งเช็คproviders/liff-provider.tsx— init ครั้งเดียวตอน mount, เก็บ state (isReady,isInLiff,isLoggedIn,profile,error)- ใส่
<LiffProvider>ครอบใน root layout ·liffIdอ่านจาก env ที่ผูกกับ channel ของผู้ใช้ (ค่าตัวอย่างไม่ใช่ของจริง — เอามาจาก channel ที่สร้างในขั้น 4)
3. ADAPT UX — ตาม LINE MINI App guideline
- ไม่มีหน้า login แยก — พอเปิดใน LINE มี profile ให้เลยผ่าน
getProfile()(ทักชื่อ/รูปได้ทันที) - Safe area — เผื่อ header ของ LINE ด้านบน (
env(safe-area-inset-top/bottom)) ปุ่มสำคัญอย่าชนขอบ - ปุ่ม action เต็มความกว้าง แตะง่าย (min 44px) · สี brand/ปุ่ม ยึดตาม LINE design guideline ใน docs ไม่ใช่ hardcode ค่าตายตัวในไฟล์นี้
- ถ้าเปิดนอก LINE (external browser) → แสดง fallback ที่ยังใช้งานได้ ไม่ใช่จอเปล่า
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 · 98 lines · 13 tokens per session scan A d4b047d508b8
toh-line is a command published in the GitHub repository wasintoh/toh-framework (95 stars, last pushed 2d ago), licensed MIT. It adds 13 tokens to every session and 1,634 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 commands, from other repositories
flutter-build
Fix Dart analyzer errors and Flutter build failures incrementally. Invokes the dart-build-resolver agent for minimal, surgical fixes.
flutter-review
Review Flutter/Dart code for idiomatic patterns, widget best practices, state management, performance, accessibility, and security. Invokes the flutter-reviewer agent.
flutter-test
Run Flutter/Dart tests, report failures, and incrementally fix test issues. Covers unit, widget, golden, and integration tests.
gradle-build
Fix Gradle build errors for Android and KMP projects.
doctor
Diagnose installation health. Check Node, CDP bridge, rn-fast-runner (iOS), rn-android-runner (Android), maestro-runner, simulators, Metro, CDP, injected helpers, ffmpeg, physical devices, plugin version, Vercel rules sync. Reports what's missing — does NOT modify your project.
brainstorm
Command dispatcher for brainstorm.