{"$schema":"https://ejfox.com/schema/page-twin@1.json","kind":"tag","url":"https://ejfox.com/tag/tools","json_url":"https://ejfox.com/tag/tools.json","generator":"ejfox.com/json-twin@1","data":{"tag":"tools","posts":[{"slug":"projects/clipgoblin","title":"clipgoblin","date":"2026-04-29T05:00:00.000Z","type":"post","tags":["tools"],"toc":[{"text":"Related video tools","slug":"related-video-tools","level":"h2","children":[{"text":"Sentry Search","slug":"sentry-search","level":"h3","children":[]},{"text":"Transcript Video","slug":"transcript-video","level":"h3","children":[]}]}],"metadata":{"title":"clipgoblin","date":"2026-04-29T05:00:00.000Z","category":"Tools","featured":false,"tech":["Swift"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":256,"images":5,"imageDetails":{"total":5,"cloudinary":5,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"Related video tools","slug":"related-video-tools","level":"h2","children":[{"text":"Sentry Search","slug":"sentry-search","level":"h3","children":[]},{"text":"Transcript Video","slug":"transcript-video","level":"h3","children":[]}]}],"type":"post","slug":"projects/clipgoblin"}},{"slug":"projects/newswell","title":"Newswell Studio","date":"2025-10-01T00:00:00.000Z","type":"post","draft":false,"tags":["tools","journalism","dataviz"],"toc":[],"metadata":{"title":"Newswell Studio","date":"2025-10-01T00:00:00.000Z","category":"Tools","featured":false,"draft":false,"tech":["Nuxt 4","Vue","WordPress","PHP","GPT-4"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools","journalism","dataviz"],"words":130,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/newswell"}},{"slug":"projects/noaa-sat-cli","title":"NOAA Satellite CLI","date":"2025-06-09T05:00:00.000Z","type":"post","tags":["tools"],"toc":[],"metadata":{"title":"NOAA Satellite CLI","date":"2025-06-09T05:00:00.000Z","category":"Tools","featured":false,"url":"https://github.com/ejfox/noaa-sat-cli","tech":["TypeScript"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":256,"images":3,"imageDetails":{"total":3,"cloudinary":3,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/noaa-sat-cli"}},{"slug":"projects/openrouter-census","title":"OpenRouter Census","date":"2025-08-21T05:00:00.000Z","type":"post","tags":["tools"],"toc":[],"metadata":{"title":"OpenRouter Census","date":"2025-08-21T05:00:00.000Z","category":"Tools","featured":false,"url":"https://github.com/ejfox/openrouter-census","tech":["JavaScript"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":285,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/openrouter-census"}},{"slug":"projects/paramilitary-leaks","title":"Paramilitary Leaks","date":"2025-09-01T04:00:00.000Z","type":"post","tags":["journalism","data","osint","tools"],"toc":[],"metadata":{"title":"Paramilitary Leaks","date":"2025-09-01T04:00:00.000Z","category":"Journalism","featured":true,"tech":["Nuxt","Vue","Search","Data Visualization"],"state":"deployed","ai-involvement":"ai-assisted","context":"collaborative","tags":["journalism","data","osint","tools"],"words":178,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":6,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/paramilitary-leaks"}},{"slug":"projects/photography-tools","title":"EXIF Printer","date":"2024-04-01T04:00:00.000Z","type":"post","modified":"2025-08-13T15:20:07.000Z","tags":["photography","tools"],"toc":[],"metadata":{"title":"EXIF Printer","date":"2024-04-01T04:00:00.000Z","category":"Tools","featured":false,"modified":"2025-08-13T15:20:07.000Z","tech":["Photography","EXIF","Print Design","Web Design","Camera Metadata"],"state":"deployed","ai-involvement":"ai-assisted","tags":["photography","tools"],"words":119,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/photography-tools"}},{"slug":"projects/scrapbook-core","title":"Scrapbook Core","date":"2026-05-05T05:00:00.000Z","type":"post","tags":["tools"],"toc":[{"text":"The scrapbook family","slug":"the-scrapbook-family","level":"h2","children":[{"text":"Scrapbook CLI","slug":"scrapbook-cli","level":"h3","children":[]},{"text":"Scrapscroller","slug":"scrapscroller","level":"h3","children":[]},{"text":"Arena Cards","slug":"arena-cards","level":"h3","children":[]},{"text":"Retroscope","slug":"retroscope","level":"h3","children":[]},{"text":"Photos","slug":"photos","level":"h3","children":[]}]}],"metadata":{"title":"Scrapbook Core","date":"2026-05-05T05:00:00.000Z","category":"Tools","featured":false,"url":"https://github.com/ejfox/scrapbook-core","tech":["JavaScript"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":581,"images":7,"imageDetails":{"total":7,"cloudinary":7,"withDimensions":0},"links":7,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"The scrapbook family","slug":"the-scrapbook-family","level":"h2","children":[{"text":"Scrapbook CLI","slug":"scrapbook-cli","level":"h3","children":[]},{"text":"Scrapscroller","slug":"scrapscroller","level":"h3","children":[]},{"text":"Arena Cards","slug":"arena-cards","level":"h3","children":[]},{"text":"Retroscope","slug":"retroscope","level":"h3","children":[]},{"text":"Photos","slug":"photos","level":"h3","children":[]}]}],"type":"post","slug":"projects/scrapbook-core"}},{"slug":"projects/terminal-tools","title":"Terminal Tools","date":"2026-09-30T04:00:00.000Z","type":"post","draft":false,"tags":["cli","terminal","tools"],"toc":[{"text":"Utilities","slug":"utilities","level":"h2","children":[{"text":"git-status-dash","slug":"git-status-dash","level":"h3","children":[]},{"text":"GitHub Sloth","slug":"github-sloth","level":"h3","children":[]},{"text":"tmux-link-grab","slug":"tmux-link-grab","level":"h3","children":[]},{"text":"Music CLI","slug":"music-cli","level":"h3","children":[]},{"text":"Robots","slug":"robots","level":"h3","children":[]}]},{"text":"Input and display","slug":"input-and-display","level":"h2","children":[{"text":"PS5 Tmux","slug":"ps5-tmux","level":"h3","children":[]},{"text":"Talon Sketchybar","slug":"talon-sketchybar","level":"h3","children":[]},{"text":"showtouch","slug":"showtouch","level":"h3","children":[]},{"text":"ascii_webcam","slug":"ascii_webcam","level":"h3","children":[]}]},{"text":"Games and toys","slug":"games-and-toys","level":"h2","children":[{"text":"CLI Ching","slug":"cli-ching","level":"h3","children":[]},{"text":"CLI Conway","slug":"cli-conway","level":"h3","children":[]},{"text":"CLI Delta Dojo","slug":"cli-delta-dojo","level":"h3","children":[]},{"text":"CLI Ascii 3D","slug":"cli-ascii-3d","level":"h3","children":[]},{"text":"CLI AI Chat","slug":"cli-ai-chat","level":"h3","children":[]}]}],"metadata":{"title":"Terminal Tools","date":"2026-09-30T04:00:00.000Z","category":"Tools","featured":false,"draft":false,"tech":["Rust","Go","Python","Node.js","Shell","tmux"],"state":"deployed","ai-involvement":"ai-assisted","tags":["cli","terminal","tools"],"words":546,"images":14,"imageDetails":{"total":14,"cloudinary":14,"withDimensions":0},"links":14,"codeBlocks":0,"headers":{"h2":3},"toc":[{"text":"Utilities","slug":"utilities","level":"h2","children":[{"text":"git-status-dash","slug":"git-status-dash","level":"h3","children":[]},{"text":"GitHub Sloth","slug":"github-sloth","level":"h3","children":[]},{"text":"tmux-link-grab","slug":"tmux-link-grab","level":"h3","children":[]},{"text":"Music CLI","slug":"music-cli","level":"h3","children":[]},{"text":"Robots","slug":"robots","level":"h3","children":[]}]},{"text":"Input and display","slug":"input-and-display","level":"h2","children":[{"text":"PS5 Tmux","slug":"ps5-tmux","level":"h3","children":[]},{"text":"Talon Sketchybar","slug":"talon-sketchybar","level":"h3","children":[]},{"text":"showtouch","slug":"showtouch","level":"h3","children":[]},{"text":"ascii_webcam","slug":"ascii_webcam","level":"h3","children":[]}]},{"text":"Games and toys","slug":"games-and-toys","level":"h2","children":[{"text":"CLI Ching","slug":"cli-ching","level":"h3","children":[]},{"text":"CLI Conway","slug":"cli-conway","level":"h3","children":[]},{"text":"CLI Delta Dojo","slug":"cli-delta-dojo","level":"h3","children":[]},{"text":"CLI Ascii 3D","slug":"cli-ascii-3d","level":"h3","children":[]},{"text":"CLI AI Chat","slug":"cli-ai-chat","level":"h3","children":[]}]}],"type":"post","slug":"projects/terminal-tools"}},{"slug":"projects/vulpes-browser","title":"Vulpes Browser","date":"2026-01-20T05:00:00.000Z","type":"post","draft":false,"tags":["tools"],"toc":[],"metadata":{"title":"Vulpes Browser","date":"2026-01-20T05:00:00.000Z","category":"Tools","featured":false,"draft":false,"url":"https://github.com/ejfox/vulpes-browser","tech":["Swift"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":118,"images":3,"imageDetails":{"total":3,"cloudinary":3,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/vulpes-browser"}},{"slug":"projects/vulpes-nvim","title":"vulpes.nvim","date":"2026-01-18T05:00:00.000Z","type":"post","tags":["tools"],"toc":[],"metadata":{"title":"vulpes.nvim","date":"2026-01-18T05:00:00.000Z","category":"Tools","featured":false,"url":"https://github.com/ejfox/vulpes.nvim","tech":["Lua"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":78,"images":3,"imageDetails":{"total":3,"cloudinary":3,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/vulpes-nvim"}},{"slug":"projects/vulpes-system","title":"Vulpes","date":"2026-01-18T05:00:00.000Z","type":"post","tags":["vulpes","design","aesthetic","tools","hardware"],"toc":[{"text":"The editor","slug":"the-editor","level":"h2","children":[]},{"text":"The devices","slug":"the-devices","level":"h2","children":[]},{"text":"The screen when I walk away","slug":"the-screen-when-i-walk-away","level":"h2","children":[]},{"text":"The rest of the kit","slug":"the-rest-of-the-kit","level":"h2","children":[]}],"metadata":{"title":"Vulpes","date":"2026-01-18T05:00:00.000Z","category":"Art","featured":true,"url":"https://github.com/ejfox/vulpes.nvim","tech":["Lua","Swift","Metal","Rust","Zig","Tauri","Flipper Zero"],"state":"doing","ai-involvement":"ai-assisted","tags":["vulpes","design","aesthetic","tools","hardware"],"words":489,"images":7,"imageDetails":{"total":7,"cloudinary":7,"withDimensions":0},"links":5,"codeBlocks":0,"headers":{"h2":4},"toc":[{"text":"The editor","slug":"the-editor","level":"h2","children":[]},{"text":"The devices","slug":"the-devices","level":"h2","children":[]},{"text":"The screen when I walk away","slug":"the-screen-when-i-walk-away","level":"h2","children":[]},{"text":"The rest of the kit","slug":"the-rest-of-the-kit","level":"h2","children":[]}],"type":"post","slug":"projects/vulpes-system"}},{"slug":"projects/vulpino","title":"Vulpino","date":"2026-01-10T05:00:00.000Z","type":"post","tags":["tools"],"toc":[],"metadata":{"title":"Vulpino","date":"2026-01-10T05:00:00.000Z","category":"Tools","featured":false,"url":"https://github.com/ejfox/vulpino","tech":["Swift"],"state":"deployed","ai-involvement":"ai-assisted","tags":["tools"],"words":387,"images":5,"imageDetails":{"total":5,"cloudinary":5,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/vulpino"}}],"scraps":[]},"_links":{"self":"https://ejfox.com/tag/tools.json","html":"https://ejfox.com/tag/tools","blog_tag":"/blog/tag/tools.json"}}