A bilingual (English · 中文) collection of articles and essays spanning three domains: technology (hands-on experience with OpenClaw 🦞 and Hermes Agent ⚕, privacy, knowledge management), history, and culture & philosophy (motorcycle culture, how different cultures face death, the "unknown unknowns" of knowledge). This page indexes the English articles; Chinese-language articles (including most culture posts) are listed in the 中文版.
Images for each article live in the imgs/ subdirectory and follow the same YYMMDD-slug naming convention as the articles themselves.
Custom OpenCode skills developed here auto-publish to ClawHub — the Published Skills table below lists each one.
| Article | Description |
|---|---|
| cursor-to-vscodium | Replacing Cursor with a minimal, self-contained VSCodium AppImage on Arch — no forced agent panel, no telemetry, no account; three Open VSX extensions (Vim, Markdown Preview Enhanced, Markdown PDF); built-in Mermaid and local PlantUML rendering; manual updates; and a measured footprint comparison; with a visual summary infographic |
| unix-is-art | A personal essay on the Unix philosophy as an aesthetic — its history from 1974 to 2004 (Thompson and Ritchie, McIlroy, Kernighan and Pike, Raymond), the ideas behind it and the critics of it, a remembrance of Dennis Ritchie, and what Unix made me |
| secret-handling | A short checklist for keeping secrets out of git — why a committed secret is already compromised, the .gitignore patterns to add, where to state the policy (README, AGENTS.md), and three commands to verify nothing is hiding; with a visual summary infographic |
| encrypt-linux | A personal Linux security story — how a break-in 20+ years ago pushed me from detecting tampering (tripwire) to preventing it: LUKS full-disk encryption (xfs root, cleartext /boot), Veracrypt USB volumes, the threat model and its honest limits, AES-NI overhead, TRIM, and a daily rsync backup between two encrypted disks; with a visual summary infographic |
| brisova-malware-analysis | Anatomy of a malicious GitHub repo invite: an obfuscated Tailwind/PostCSS plugin that runs npm install sql.js socket.io-client form-data axios at build time and loads a C2/credential-stealer toolset — static and sandboxed dynamic analysis, a zero-trust handling strategy, and full IoCs; with a visual summary infographic |
| play-rdr2-with-opencode | Playing Red Dead Redemption 2 with an AI agent — documenting a playthrough in OpenCode with a custom skill and an AGENTS.md, on Arch Linux via Steam/Proton |
| rdr2-ch2-playthrough-notes | Working reference: RDR2 Chapter 2 playthrough notes — gold bars, legendary animals, trinkets, robberies, and challenges, maintained with the rdr2-playthrough skill |
| lossless-pptx-extraction | Engineering deep-dive: extracting PowerPoint decks into full-data Markdown — OOXML shape walking, content vs layout chrome vs unrenderable objects, a 5-point losslessness audit, and why the pipeline stays local instead of running in CI |
| happy-birthday-linux | A 35-year Linux journey in one personal story — AIX at IBM, getting hacked and the security habit it forged, the distro years ending at Arch, and every machine now Arch Linux; with a visual summary infographic |
| arch-hyprland-gpd-win4-egpu | Dual AMD GPUs on a handheld — iGPU + eGPU (RX 7600M XT via OCuLink) rendering offload, verification commands, and stable DRM symlinks |
| brave-browser-privacy | Deep dive into why I switched to Brave: local keychain, Shields, WebRTC control, Tor integration, and real-world privacy difference |
| immutable-os-strategy | Personal strategy on "immutable" OS choices — why a quarter-century Linux power user sticks with native Arch Linux and Debian LTS over Bazzite/Silverblue |
| dcs-joystick-tuning | Beginner's guide to DCS World with a VKB Gladiator NXT EVO joystick and a no-numpad keyboard — game-mode flying, keybindings, and axis tuning |
| Article | Description |
|---|---|
| what-to-know-work-with-ai | What you actually need to know to work well with an AI agent — clear description is the user's job, the skills that help (Markdown, skills, Python, YAML/GitHub Actions, Git, Linux, AGENTS.md/SKILL.md), why patch-on-patch agent code becomes unmaintainable, and the four things never to delegate alone |
| agent-session-persistence | Where an OpenCode coding-agent session lives on disk and how it resumes — the single SQLite store, what it holds (schema and counts), the business data it becomes at team scale, context compaction, automatic pruning, and how to back it up |
| opencode-create-skill-onfly | Create SKILL.md, AGENTS.md, and PERSONA.md on the fly instead of hunting others' skills — three levels of customization, real benefits from daily use, and OpenCode as the daily agent |
| agents-md-not-a-persona | AGENTS.md is not a persona but a constitution written in scars — every rule traced to a real incident (a self-cloned repo, lying docs, a prompt flood), agent-agnostic lessons for any AI coding agent |
| zhihu-skill-opencode | Installing the zhihu skill + official zhihu-cli in OpenCode — including the headless-environment auth path via ZHIHU_ACCESS_SECRET when the OS keychain is unavailable |
| agents-opencode-config | OpenCode AGENTS.md + opencode.jsonc — architecture, precedence and workflow: how the two surfaces load, resolve conflicts, evaluate permissions, and isolate across submodule context walls; verified against anomalyco/opencode source HEAD e11dbd0. |
| port-skill-to-opencode | How to port an existing Hermes Agent skill to OpenCode — copy the folder, rewrite frontmatter, fix paths, and test the router |
| opencode-git-underrated | How a 15-year git user produced more automation in two days with OpenCode than in most of those years — the 9-step thought-flow loop, division of labor, and the compounding architecture |
| ai-agent-collaboration | What three repos of auto-published ClawHub skills taught me about AGENTS.md, SKILL.md, project boundaries, and the architecture of working with an AI agent |
| opencode-is-best | Vendor freedom, the big-pickle model, enforced conventions, and unified billing via OpenRouter — why this setup wins for me |
| ai-combination | Optimizing AI usage: from Doubao user to power user — combine OpenRouter, OpenCode, and Hermes/OpenClaw SKILL.md workflows |
| choose-between-opencode-and-claude-code | Comparison of OpenCode vs Claude Code for running Claude Opus and other models |
| engageOpenClaw | Reflections after 3 months with OpenClaw and Hermes: orchestrating multi-step AI tasks and per-section image generation workflows |
| Article | Description |
|---|---|
| terminal-is-an-art | Almost 30 years on Unix/Linux distilled into why the command line is an art — simple, direct, honest, powerful, universal, and still growing as AI agents' natural interface |
| unknown-unknowns | Personal essay on the four types of knowledge — known knowns, known unknowns, unknown knowns, and the unknown unknowns that shape our lives |
| Article | Description |
|---|---|
| hermes-cleanup | List enabled skills, opt out of bundled skills, and revert anytime — debloat your agent |
| hermes-backup | Guide to backing up Hermes Agent data using the built-in CLI — full snapshots, quick backups, and restore procedures |
| hermes-perftips | Hermes Agent Tips & Best Practices Summary |
| hermes-persona-soul | Practical guide to configuring Hermes Agent's SOUL.md for personality customization |
| hermes-connect-models | Treasure hunt: Hermes Agent ⚕ Connects to Free Models |
| hermes-SOUL-annotated | Annotated takeaways from Tony Simons' viral 170-line SOUL.md post — why SOUL.md makes Hermes feel like a teammate |
| hermes-github | Hermes Agent: 10 GitHub Repos to Stress-Test It |
| hermes-custom-skill-install | Tested end-to-end workflow: install a custom Hermes SKILL.md from GitHub, with verified commands, examples, and a live installation walkthrough |
| hermes-update-err | Debugging the Hermes TUI build failure caused by a malformed root package.json |
| hermes-connect-nvidiamodel-openrouter | Guide to connecting Hermes to Nvidia Nemotron free model via OpenRouter, with primary and fallback model configuration |
| hermes-openrouter-elephant-alpha | Practical guide to setting up Hermes with OpenRouter's free Elephant-Alpha model as an alternative to OpenClaw, including WhatsApp integration and multi-user configuration |
| Article | Description |
|---|---|
| obsidian-karpathy-llm | Query your personal vault with a local LLM — no cloud, no API keys |
| ollama-gpu | Running Ollama on Arch Linux with AMD GPUs (GPD Win 4) — diagnosing low GPU utilization and switching to the ROCm build |
| 2nd-brain-design | Design doc for an AI-powered bilingual knowledge assistant ("2nd Brain") on Obsidian — architecture, milestones, and tech stack |
| Article | Description |
|---|---|
| raindrop-bookmark-manager | Notes on Raindrop.io as a bookmark manager — privacy, security, and open-source clients |
| tech-conversation | Tech Q&A conversation (not a job interview) on day-to-day AI agent workflows — mindset, environment, skills, prompts, work style, quality, and security |
| engage-ai | Notes and links on Claude tooling and AI productivity tips for developers |
| the-timeless-allure-of-motorcycle-riding | English article on motorcycle culture, history, and riding styles |
| Article | Description |
|---|---|
| openclaw-update | Recent updates and developments in OpenClaw platform |
| openclaw-custom-skills | Step-by-step tutorial for building, validating, testing, and publishing custom skills on ClawHub |
| openclaw-security | Security audit of OpenClaw: real incidents, known vulnerabilities, and a tiered hardening checklist for self-hosters |
| openclawActivity2 | What I've been up to in OpenClaw lately: setup, configuration, and recent activity log |
Developed in this repo and auto-published to ClawHub on every push.
| Skill | Description |
|---|---|
| publish-skills | Publish SKILL.md files to ClawHub (clawhub.ai) and diagnose publish failures across the three skill repos (history, ai-custom-skills, ai-thoughts). Use when the user wants to publish skills to ClawHub, manually trigger a publish, check why a publish failed or was skipped, or understand the ClawHub skill sync pipeline. |
| simplified-to-traditional | Convert a Simplified-Chinese article in ai-thoughts/docs/ into its Traditional-Chinese twin, and keep the two in sync. The Simplified article is the source of truth and lives as -zh-hans.md; the Traditional twin is generated to -zh-hant.md with OpenCC (s2twp) plus a permanent cross-link. Use when the user asks to make, sync, or update the Traditional (繁體) version of a Chinese article — "convert to traditional", "做繁體版", "同步繁简", "zh-hant", "繁體". Never runs automatically; acts only on an explicitly named article. Future articles only — do NOT backfill existing files unless the user explicitly orders it. |
| astro-sync | Convert and polish a Markdown article into AstroPaper-compatible post format for the astro_journal blog (everbox.io). Use when the user wants to publish or sync an article (e.g. from ai-thoughts/docs/ or history/docs/) to the Astro blog, convert Markdown to Astro format, add AstroPaper frontmatter, or move images into src/assets/images/. |
| arch-sign-off | Append the Arch Linux sign-off line btw, i use arch to the very bottom of an article in ai-thoughts/docs/ (EN or ZH). This is a standing default for every article: apply it unless the user explicitly says not to. Use when writing or finishing any new article, or when the user asks to add it. |
| translate-to-zh-hans | Translate a specific article from ai-thoughts/docs/ into Simplified Chinese, writing the output to an exactly-same-filename "-zh-hans.md" file. Use when the user names a specific article and asks to translate it (e.g. "translate 260803-ollama-to-llamacpp", "翻译 xxx", "make a -zh-hans.md version" — or the legacy "make a -chn.md version"). Never runs automatically; only acts on an explicitly chosen article. |
| custom-infographic | Generate a professional infographic from an article, document, URL, or topic, using the baoyu layout x style system (21 layouts x 21 styles). Original author 宝玉 (JimLiu); ported & customized by j3ffyang. Use when the user asks to create an infographic, 信息图, visual summary, 可视化, or a high-density information image, or wants an article turned into a visual poster. |
| security-writeup-bad-effects | Add a plain per-section "Bad effect:" statement to each section of a defensive security or incident-analysis write-up, naming the concrete harm and the failure mode. Use when reviewing or finishing a security/analysis article (e.g. a malware dissection) or when the user asks what the bad effect of a section is or wants each section annotated. |
| untrusted-code-safety | Zero-trust procedure for reviewing or running code from an unknown source. Use when reviewing, vetting, cloning, installing, or running code from an untrusted source (repo invites, packages, scripts, executable config files), when asked whether code is safe or hazardous, when executed code may read secrets/files or reach the network, and when the user says "raise hands", "stop and alert", or "sandbox it". Also trigger on suspicion of malicious, harmful, deceptive, cheating, or stealing behavior. |
| rdr2-playthrough | Use when maintaining RDR2 (Red Dead Redemption 2) playthrough notes — logging an acquisition ("acquired X", "got N gold bars", "finished X"), answering in-game location/crafting questions, or reviewing the notes for duplicate or stale info. Triggers on RDR2, Red Dead Redemption, playthrough, legendary animal, talisman, trinket, valerian root, gold bar, horse, weapon, berry. |
| pptx-extract | Extract a PowerPoint deck into full-data, page-delimited Markdown — every text run, table, speaker note, and image — with unextractable data (vector metafiles, charts, OLE embeds) skipped but visibly noted on its slide, then prove losslessness with a 5-point machine audit. Use when the user asks to extract/convert a PPTX to Markdown, add a new deck to an extraction project, or regenerate a stale extraction. Related terms: PPT, PowerPoint, PPTX, slide extraction, 提取. |
| normalize-whitespace | Normalize indentation of a large reference text document (e.g. README.md) to a consistent TAB style while keeping content byte-identical. Use when asked to fix inconsistent leading spaces, align command blocks, or clean indentation spread across hundreds of lines in a prose-heavy, single-fence document. Built from the 2026-09 instguid README.md normalization session. |
| sync-config-with-sample | Sync a production config file (e.g. hyprland.lua.gpd) against the latest upstream sample (e.g. hyprland.lua.260917) by copying only reference info/URL comments while preserving the user's actual configuration. Use when the user drops a freshly downloaded sample alongside a live config, mentions keeping the newest sample as the diff baseline, or wants only real config differences to remain visible in diff. |
| bold-highlights | Add sparse, deliberate bold highlights to a few key concepts so readers can scan and capture the article's core points. Use when polishing an article in ai-thoughts/docs/ or when the user asks to make an article more scannable or add highlights. |
| resize-for-banner | Rescale an image into social banner versions using ImageMagick. The image is resized to fit and the leftover space is padded black — never cropped. Use when the user wants a banner, cover photo, or resized version for a social profile or article header. Never overwrites the original — creates new files beside it. Defaults to Twitter/X (5:2, 1500x600); other platforms available on request. |
| zhihu-for-opencode | 使用知乎开放平台搜索知乎和全网内容、获取热榜、调用知乎直答,或读取当前用户自己的知乎创作、关注与收藏。用户提到知乎搜索、社区观点、真实经验、热点、热榜、知乎直答、我的知乎内容、我的关注、我的收藏、开放平台、API、MCP、Access Secret,或要求查看、安装和配置知乎 Skill 时使用。深度研究优先返回搜索原始来源;本人数据只读取完成任务所需的最小范围。 |
| read-image | Generate textual descriptions of one or more images when the current session model (e.g. opencode/big-pickle) has no image input, by delegating to a vision-capable model on OpenRouter via opencode run with --file. Use when the user drops photos into imgs/, asks "can you read/describe these images", or an image needs a description for an article, portfolio, infographic, or video pipeline. Related terms: 看图, 描述图片, image description, vision model, glm-4.6v, --file. |
| story-telling | Generate a narration script (voiceover + shot list + per-clip visual prompts + music cues) for a personal travel-story video or essay, from a thought-flow master skill and the author's own photos. Use when the user wants "a script", "旁白脚本", a storytelling/故事化 script for a video, or asks to turn a personal travel story (e.g. the death-in-Mexico project) into a narrated video or essay. Output is Simplified Chinese first-person storytelling, engine-agnostic in voiceover and timing, engine-specific in clip prompts. Never runs automatically; acts only when the user asks for a script. |
| video-gen | Generate a video from a story-telling narration script plus the author's photos, using Seedance 2.0 image-to-video via OpenRouter's asynchronous video API: pre-render gates (face-scan, narrative order, risk-POC), then per-clip submit -> poll -> download, then ffmpeg assembly. Multi-clip projects default to silent clips plus one continuous soundtrack (synthesized or royalty-free/PD); subtitle voiceover is the fallback (no OpenRouter TTS). Verified working 2026-08-15 (POC: 4s 480p clip, $0.28, ~3 min). Use when the user asks to render a narration script into a video, generate a 视频, or run the death-in-Mexico project's video pipeline. Related terms: Seedance, 视频生成, OpenRouter, image-to-video. |
| thought-flow | The 8-stage collaboration loop for working with the user: INTENT, CONSTRAINTS, PROPOSE, PRESS, PRACTICE, INVESTIGATE, CODIFY, BOUNDARY-CHECK. Use when starting a new task (state intent and constraints up front), when proposing a plan (include options + a recommendation), when the user pushes back on a proposal, when something fails or looks broken and needs investigation, or when deciding whether to codify knowledge into an AGENTS.md rule or a SKILL.md procedure. |
| lan-latency-triage | Use when diagnosing host-to-host reachability, latency, or packet-loss faults on the LAN — "can't ping the other machine", ping times out, ARP/neigh INCOMPLETE, huge or variable LAN RTT, WiFi power save, DTIM buffering, or an intermittent drop. Encodes the differential-measurement ladder (control group, ARP layer, firewall, AP isolation, rate sweep, per-packet ping trace) that separates a layer-2 fault from a firewall from a DTIM stall. Triggers on ping, latency, packet loss, neigh, arp, INCOMPLETE, FAILED, DTIM, power save, BSSID, RSSI, unreachable, timeouts, one host can't reach another. |
Earlier versions of articles are kept alongside their final versions so each piece shows the evolution from brainstorming doc to finished post. These are the drafts that became (or are becoming) the articles above.
| Draft | Notes |
|---|---|
| brave-leo-local-data | Inside Brave Leo's local store — the single AIChat SQLite database, its schema for conversations/pages/search sources, why its at-rest OSCrypt encryption falls back to a hardcoded key without a keyring, what that structured local data could be used for, and why harvesting it team-wide is not worth it |
| opencode-openrouter-model-selection | Picking a model and provider for OpenCode via OpenRouter — separating model origin from serving jurisdiction, tiering data-privacy risk, comparing DeepSeek/Qwen/GLM/Kimi/Gemini/OpenAI prices, and reproducing live rates with curl and Python |
| ground-truth-and-growth | Reflections on growing with AI agents — choosing OpenCode, learning the pace of AI collaboration, discovering Git automation, and finding meditative honesty in terminal-based computing |
| death-thought-flow | Personal thought-flow master for the death-in-Mexico project — seven thinking points, six content sections, verified facts, and cultural guardrails; use with the story-telling skill to generate a narration script or essay |
| ai-video-pipeline | How a 60-second AI video trailer was built from eight photos with five OpenCode skills, an 8-stage thought-flow loop, and two content-policy failures that became codified gates |
| ai-video-recommendations | Ten rules for making AI videos with image-to-video engines — story-first scripting, delegated vision, audio decoupling, and a resumable pipeline that turns failures into codified skills |
| ollama-to-llamacpp | Pushing the limit of a local LLM on Arch Linux (GPD): switching from Ollama to llama.cpp for finer VRAM control, higher efficiency, and better output quality with qwen2.5:14b |
| ai-combination (full v1.1) · template | Full-length version and seed template behind the condensed ai-combination article |
| web-search newsletter | Notes on building a newsletter skill with web_search (OpenClaw/Hermes) |
| openclaw-custom-skills (early drafts) | Earlier iterations of the OpenClaw custom-skills tutorial |
Maintaining this index: edit
articles.yaml, then runpython scripts/gen_readmes.pyto regenerateREADME.mdandREADME_zh.md. The Published Skills table is auto-derived from each.opencode/skills/*/SKILL.mdfrontmatter, linking to its ClawHub page. Article sections are ordered by newest post; drafts stay last.