¬ just serendipity 🍀

¬ just serendipity 🍀

Thiago Perrotta

Welcome to my digital garden – a space dedicated to exploring technology and sharing what I’ve been learning. This site reflects my passion for continuous learning and open-source software, wherein I document my journey, offer insights, and dive into miscellaneous topics that reflect my interest. My goal is to maintain a corner of the Web for self-expression focused on valuable, distraction-free content. I believe in the power of the Open Web as a platform for sharing knowledge.

Latest Posts

♠ Previously. Problem statement: my Pi extension blocked dangerous shell commands outright, even when I had already preserved the state they could destroy. The guard parses every bash tool call with tree-sitter, catching commands such as...
♠ Problem statement: asking a coding agent whether it runs in a sandbox returns a confident answer derived from its system prompt, not from the machine it is actually running on. I asked Pi exactly that. The reply was assured: No — pi...
♠ Previously. Problem statement: make my cdg shortcut jump from a linked Git worktree back to the main checkout when already at the worktree root. The shortcut originally stopped at the current checkout’s root: alias cdg='cd "$(git...
♠ Problem statement: given a cmux session with a dozen1 workspaces, how can you quickly find the one you’re looking for? Keyboard shortcut (macOS): Cmd + ⌥ + F. Source. There’s also a system tray icon for cmux with a Search All...
♠ hwatch: hwatch: alternative watch command with history, diff view, JSONL logging, and change hooks. since 2018. Or, even better, from its man page hwatch(1): hwatch is like watch command, repeatedly executes a command and displays its...
♠ Problem statement: brew doctor found one deprecated cask and one installed keg whose formula had disappeared. tflint # Warning: Some installed casks are deprecated or disabled. You should find replacements for the following casks:...
♠ Previously. Problem statement: meat only documents a go install command, but I want Homebrew to manage it1. The existing installation lived under $GOPATH: % go install meat.dev/cmd/meat@latest % which meat...
♠ Problem statement: a terraform project planned clean locally (terraform plan), but CI insisted on a diff. Every apply fixed it for one side and broke it for the other, back-and-forth. The culprit was a null_resource that rebuilds an...
Wisdom is a strange thing. The Wisdom Paradox is this: when we realise we are less wise than we thought, we become wiser. […] Good judgment comes from experience, and experience comes from bad judgment. The naivety of youth is a lovely...
♠ Today I learned: Atuin ships hooks that capture commands executed by AI LLM coding agents into the same shell history as mine. As of today there are hooks for Claude Code, OpenAI Codex and Pi. % atuin hook --help Manage AI-agent shell...
♠ Previously. My dual-review skill runs two independent LLM reviewers over a commit / diff / PR, validates every finding against the code, and hands back one action plan — Blockers, Important, Suggestions. Recently I added a flag...
♠ Previously. I’ve finally removed the GitHub MCP server from my Pi configuration, after piloting it for a while with pi-mcp-adapter. GitHub already has a mature CLI (gh) installed and authenticated: % gh --version gh version 2.97.0...
♠ Problem statement: a newly created Route 53 record resolved through public DNS, but Chrome Brave and macOS still returned DNS_PROBE_POSSIBLE. It smells like a DNS caching issue. Flushing mDNSResponder did nothing though. The system...
OpenRouter # Today I signed up for OpenRouter. The Unified Interface For LLMs Better prices, better uptime, no subscriptions. Its main selling point is a single LLM API endpoint to rule them all, without lock-in to a specific provider or...
♠ Problem statement: git fsck failed in a linked worktree, even though every branch and reflog remained intact. The initial diagnosis was noisy: missing blobs, hundreds of dangling objects, and an invalid commit graph: missing blob...
Search Random