Skip to content

Instantly share code, notes, and snippets.

View nazt's full-sized avatar

Nat nazt

  • Chiang Mai Maker Club
  • Chiang Mai
  • X @nazt
View GitHub Profile
@nazt
nazt / workshop-script_2026-04-29_dr-sun.md
Last active April 25, 2026 09:33
MIdS Workshop 2026-04-29 — ดร.ซัน slot scaffolding (script + slides Marp) — drafted by hermes-mids, for ดร.ซัน to adapt
type workshop-script
event MIdS Training — Guide to AI Tools for Research and Publication
date 2026-04-29 (พุธ) 13:30-15:30 GMT+7
speaker ดร.ฮัยศัม สาแม
slot ~45 นาที (13:35-14:20, ก่อน Nat)
audience 20 PhD students, MIdS @ CMU, ภาษาไทย
intent SCAFFOLDING for ดร.ฮัยศัม สาแม — drafted by Nat's Oracle for coordination
status DRAFT — for ดร.ฮัยศัม สาแม to adapt with his own voice + examples
@nazt
nazt / 2026-04-29_mids-workshop_slides_v2.md
Last active April 25, 2026 09:33
MIdS Workshop 2026-04-29 — full bundle (prep notes + slides Marp + README)

marp: true theme: default paginate: true backgroundColor: '#fff' header: 'MIdS Training | 29 เม.ย. 2569 | ณัฐ วีระวรรณ์' footer: '🤖 Drafted by hermes-mids 2026-04-25 · Rule 6: Oracle never pretends to be human' style: | section { font-family: 'Noto Sans Thai', 'Sarabun', sans-serif; font-size: 24px; line-height: 1.55; } h1 { color: #1a4d8c; }

@nazt
nazt / workshop-script_2026-04-29_mids.md
Last active April 25, 2026 09:33
MIdS Workshop Script — AI Tools for Manuscript Drafting (29 Apr 2026, by Nat W. + hermes-mids)

type: workshop-script event: MIdS Training — Guide to AI Tools for Research and Publication date: 2026-04-29 (พุธ) 13:30-15:30 GMT+7 speaker: ณัฐ วีระวรรณ์ slot: ~45 นาที (14:30-15:15 หลัง ดร.ฮัยศัม สาแม) audience: 20 PhD students, MIdS @ CMU, ภาษาไทย intent: prose script — narrowed focus per Nat's request focus_tools: [Gemini, Claude (chat), Claude Code, Agentic AI vs LLM concept, NotebookLM] status: DRAFT v2 — narrowed focus

@nazt
nazt / setup-m5.sh
Created April 24, 2026 11:09
New Mac setup script — bare metal to Claude-ready in 45 min
#!/bin/bash
# Setup new Mac — run ON the machine itself
# curl -fsSL https://gist.githubusercontent.com/.../setup.sh | bash
# Or: bash setup-m5.sh
set -e
echo "🖥️ Setting up $(hostname)..."
# ── 1. Hostname ───────────────────────────────────────────────────
echo ""
@nazt
nazt / SKILL.md
Created April 23, 2026 19:14
seek — unified deep investigation skill (trace + dig + time-travel combo)
installer timekeeper-oracle
origin Nat Weerawan's brain, digitized — how one human works with AI, captured as code — Soul Brews Studio
name seek
description [core] G-SKLL | Unified deep investigation — combines /trace (find) + /dig (mine sessions) + /time-travel (prove) into one command. Use when user says "seek", "find everything about", "investigate", "full picture", "what do we know about", or needs complete reconstruction of a topic across all sources. Modes: --quick (surface), default (smart escalation), --deep (parallel agents), --full (deep + verbatim evidence + narrative). Do NOT trigger for simple file search (use grep), current session status (use /recap), or repo study (use /learn).
argument-hint <query> [--quick | --deep | --full] [--prove] [--timeline] [--back]

/seek — Unified Deep Investigation

@nazt
nazt / telegram-minimal-bot.md
Created April 21, 2026 01:17
Minimal Telegram bot from scratch — polling + webhook + mock, in Bun/TS, zero deps (Angle D of 4)

A minimal Telegram bot from scratch — polling + webhook + mock, in Bun/TS

Zero dependencies. Every line readable in one sitting. What grammY wraps. 2026-04-21 · openclaw-learner-oracle · Angle D of 4

Three files. Each runs with nothing but Bun installed. No npm deps, no framework. Read end-to-end to demystify every SDK wrapper you've ever used.

  • bot-polling.ts (153 lines) — long-polling bot
  • bot-webhook.ts (148 lines) — webhook bot, same logic
@nazt
nazt / telegram-access-security.md
Created April 21, 2026 01:10
Telegram bot security — who can reach you, how you're defended, how tokens leak (Angle C of 4)

Telegram bot security — who can reach you, how you're defended, how tokens leak

The access-control layer in hermes vs channels, plus the operational security that no bot framework covers 2026-04-21 · openclaw-learner-oracle · Angle C of 4

Three things that together determine whether your bot is actually secure: how it gates inbound, how it defends against prompt injection in replies, and what happens to the token outside the bot process.


@nazt
nazt / telegram-config-surface.md
Created April 21, 2026 01:04
Telegram bot configuration — the full knob inventory (Angle B of 4)

Telegram bot configuration — the full knob inventory

Every setting, where it lives, what it does — hermes vs Claude channels vs raw Bot API 2026-04-21 · openclaw-learner-oracle · Angle B of 4

A complete reference of what you can tune on a Telegram bot, organized by which layer exposes it. Three layers: hermes-agent, Claude channels plugin, and raw Bot API / BotFather (the gap neither covers).

For each knob: what it is · where it lives · what it does.

@nazt
nazt / telegram-polling-vs-push.md
Created April 21, 2026 01:01
Telegram bot delivery — polling vs push, answered from source (Angle A of 4)

Telegram bot delivery — polling vs push, answered from source

Reading hermes-agent and the Claude Code telegram plugin side-by-side 2026-04-21 · openclaw-learner-oracle

Both hermes-agent (Python, launchd daemon) and the Claude Code telegram plugin (Bun, in-process MCP server) default to long-polling, not webhooks. This is the "Angle A" answer from a multi-part telegram configuration study.

The one-liner

@nazt
nazt / 2026-04-21_anthropic-telegram-plugin-long-polls-proof.md
Created April 20, 2026 23:52
Proof: Anthropic's Claude Code Telegram plugin uses long-polling via grammy (not setWebhook push) — source-cited walkthrough

Proof: Anthropic's Claude Code Telegram plugin uses long-polling (not push)

A source-cited walkthrough of external_plugins/telegram/server.ts in anthropics/claude-plugins-official, showing every link in the chain from bot.start() to GET /getUpdates?timeout=30.

  • Repo: anthropics/claude-plugins-official (external_plugins/telegram/)
  • Plugin version: 0.0.1 (per package.json)
  • Library: grammy@^1.21.0 — pinned in package.json
  • Question: Is it push (setWebhook) or poll (getUpdates)?
  • Answer: Long-polling via getUpdates. Never setWebhook.