¬ 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.
August 2026
September 2026
October 2026
Top Words
- claude
- code
- reply
- github
- commit
- homebrew
- script
- shell
- anki
- update
- atuin
- pull
All posts (411)
♠ Problem statement: why did Pi keep asking for my macOS login keychain password during MCP OAuth authentication? /mcp-auth grafana opened the same prompt again after I entered the correct password and selected Allow: pi wants to use your confidential information stored in “pi-mcp-adapter.oauth” in your keychain....
♠ Previously. Problem statement: how can I approve several reviewed pull requests without opening each one individually? I pasted six pull request URLs into Pi and asked it to approve all of them. It ran the same gh command for each URL: prs=( https://github.com/[redacted]/[redacted]/pull/7692...
♠ Problem statement: why did Espanso stop expanding text while its service was running? The CLI reported a healthy service on version 2.4.1: % espanso --version 2.4.1 % espanso status espanso is running The daemon log disagreed: % rg 'espanso version:' ~/Library/Caches/espanso/espanso.log | tail -1 16:50:24...
♠ Just an ordinary day with OpenAI inference via pi: Error: Codex error: Our servers are currently overloaded. Please try again later. ∎— § —Reply via email#ai #serenity
♠ Git AI records agent checkpoints in Git notes1, without changing commit messages or repository files. In order to integrate it with Pi we use an extension, because Git AI must observe file and Bash tool calls: const GIT_AI_BIN = join(homedir(), '.git-ai', 'bin', 'git-ai'); const child = spawn(GIT_AI_BIN,...
♠ Previously. Problem statement: a plain lyrics sheet does not say who sings what. In a choir rehearsal one has to annotate every line by hand: sopranos here, everybody on the refrain. Two files, one helper, no music engraving: % ls AGENTS.md main.pdf main.typ template.typ template.typ holds the styling only — page,...
♠ Previously. Problem statement: an internal hook repo has to be cloned by CI and by every developer, and the credentials each side owns are not the same. A .pre-commit-config.yaml refers to hooks by repository: repos: - repo: https://github.com/<org>/pre-commit-hooks rev: 528e165cff8a11bc4f9f49a9b25f3249e09e4237 #...
♠ Previously. Problem statement: the GitHub PR number in my Starship prompt was plain text. The custom module already asked gh for the PR number and cached it with bkt: [custom.github_pr] command = "bkt --ttl=10m --scope=\"$(git rev-parse --show-toplevel):$(git branch --show-current)\" -- gh pr view --json number...
♠ Today I learned: mise can remove tool versions no longer referenced by its tracked configuration files. List versions eligible for cleanup (dry-run): % mise ls --prunable % mise prune --tools --dry-run Run the cleanup (without --dry-run): % mise prune --tools mise prune also handles stale tracked configuration...
♠ Today I learned: pi can keep its editor and footer at the bottom of the terminal with fullscreen TUI mode, similarly to Claude Code. The regular mode leaves terminal scrollback in charge. The --tui-mode option switches to a viewport managed by Pi: % pi --help | rg -- '--tui-mode|TUI mode' --tui-mode <mode> TUI...
♠ Sometimes we simply do not want to activate direnv in a given project. Deny it for the current directory: % direnv deny . To enable it later: % direnv allow . This is necessary to make it stop nagging you each time you cd into a project (directory) with .envrc: % cdtmp...
♠ Previously. Problem statement: my filtered Hacker News feed stopped working in Miniflux because its HNRSS endpoint returned a bad gateway response. This has been happening for a couple of weeks, to the point it became unreliable. The feed selected stories with more than 650 points:...
Page 2 of 35