Eric Marchand — phimageEric Marchand (phimage) — open-source software writer by night. Swift, AI tooling, and field notes from the twilight zone.https://phimage.github.io/Not Fleeing the Terminalhttps://phimage.github.io/blog/terminal-not-fleeing-the-terminal/https://phimage.github.io/blog/terminal-not-fleeing-the-terminal/Some people are arguing we should abandon the terminal. I'm doing the opposite — sinking deeper into it, one agent, one tmux pane, and one Muxy plugin at a time.Sat, 29 Aug 2026 00:00:00 GMTCowork, or roll my own? ☁️https://phimage.github.io/blog/cowork-or-roll-my-own/https://phimage.github.io/blog/cowork-or-roll-my-own/Cowork has been out a while: managed cloud sessions for Claude Code, even a desktop an agent can drive. I keep trying it and drifting back, because I already run the stack it packages. So do I actually need it? The one thing I can't cheaply reproduce is a session that runs online while my laptop's shut.Sat, 22 Aug 2026 00:00:00 GMTDebugging is also clicking 🖱️https://phimage.github.io/blog/debugging-the-ui/https://phimage.github.io/blog/debugging-the-ui/Stepping through code is only half of debugging — the other half is driving the interface. Web is easy (Playwright); native apps mean screenshots and OCR, unless you expose an accessibility tree. Which turns out to be faire d'une pierre deux coups: the same work that lets an agent click your UI lets assistive tech read it.Mon, 10 Aug 2026 00:00:00 GMTDebugging with agents, à l'envers: MCP in, or DAP out? 🐛https://phimage.github.io/blog/dap-for-agents/https://phimage.github.io/blog/dap-for-agents/I almost bolted an MCP server onto my debug session so my chat agent could poke at it. Then I realized I had the arrow backwards — an autonomous debugging agent should speak the debugger's own protocol. That protocol already exists: DAP. So I tried it, even on 4D.Sun, 09 Aug 2026 00:00:00 GMTacpdbg: let the agent sit at the debugger 🐛https://phimage.github.io/blog/acpdbg-agent-in-lldb/https://phimage.github.io/blog/acpdbg-agent-in-lldb/LLM agents are great at static analysis — I keep pasting crash stacks into their context. So why not let the agent read the lldb data itself over ACP, and even drive the debugger? It's a try.Sat, 11 Jul 2026 00:00:00 GMTPipeline, Flow, or Chain? Picking the Right Tool to Wire LLM Calls Togetherhttps://phimage.github.io/blog/prompt-pipelines/https://phimage.github.io/blog/prompt-pipelines/Once one prompt's output feeds the next, you have a workflow — and a naming problem, and a tooling choice. When do you reach for a chaining library, and when for a real orchestrator like Airflow or Step Functions?Fri, 26 Jun 2026 00:00:00 GMTWhen Agents Become Planners, What Remains of Workflow Orchestration?https://phimage.github.io/blog/agents-as-planners/https://phimage.github.io/blog/agents-as-planners/AI agents don't kill workflow engines — they move the DAG down a layer. Agents become the planners; orchestrators like Airflow, Step Functions, and Temporal become the reliable executors.Thu, 25 Jun 2026 00:00:00 GMTACP: Copilot in Xcode, without the plugin 🔌https://phimage.github.io/blog/acp-copilot-xcode/https://phimage.github.io/blog/acp-copilot-xcode/Xcode 27 speaks the Agent Client Protocol — so you can register the Copilot CLI directly as an agent, pick the model with an env var, and skip the official plugin entirely.Sat, 20 Jun 2026 00:00:00 GMTmacOS 27's AI dev ecosystem — and pointing 4D AIKit at a local model 🍎https://phimage.github.io/blog/macos-27-ai-dev-ecosystem/https://phimage.github.io/blog/macos-27-ai-dev-ecosystem/macOS 27 ships the fm CLI (Apple Foundation Models from the terminal), a Python SDK, and Core AI. The kicker: fm serve is an OpenAI-compatible endpoint, so 4D AIKit can drive an on-device model with no API key and no cloud bill.Sat, 20 Jun 2026 00:00:00 GMTLoop Engineering — the newest way to burn tokens 🔥https://phimage.github.io/blog/loop-engineering/https://phimage.github.io/blog/loop-engineering/After prompt, context, and harness engineering comes loop engineering — designing a system that keeps guiding and correcting an LLM until the task is actually done.Wed, 10 Jun 2026 00:00:00 GMTSpending fewer tokens with Claude Code and GitHub Copilot 🪙https://phimage.github.io/blog/optimizing-tokens/https://phimage.github.io/blog/optimizing-tokens/An improvised, battle-tested guide to burning fewer tokens in your IDE assistants — compress terminal output, freeze build scripts, script mass edits, throw away long sessions, slim your CLAUDE.md, clean your MCP servers, and let the AI be terse.Sat, 09 May 2026 00:00:00 GMTAI and design: a workspace, and a contract 🎨https://phimage.github.io/blog/ai-and-design/https://phimage.github.io/blog/ai-and-design/Two design-with-AI updates landed together. Claude Design is a workspace you design inside; Google's DESIGN.md is a file your agents read to stay on-brand. One's a destination, the other's a contract — and both touch generating 4D forms.Thu, 23 Apr 2026 00:00:00 GMTAGENTS.md for 4D — auto-generating a README for your AI agentshttps://phimage.github.io/blog/agents-md-for-4d/https://phimage.github.io/blog/agents-md-for-4d/AGENTS.md is a README for AI agents: a small markdown file at the repo root that hands an LLM the project's shape so it doesn't burn tokens exploring. Here's one auto-generated for 4D projects — plus the Claude Code import trick.Sun, 22 Mar 2026 00:00:00 GMTReranking in RAG — the precise second passhttps://phimage.github.io/blog/reranking-in-rag/https://phimage.github.io/blog/reranking-in-rag/Embedding search is a fast first pass that's only roughly right. A reranker is the cheap precision fix: a cross-encoder that re-scores the top candidates by reading query and document together. Here's why it works and what's out there.Wed, 11 Feb 2026 00:00:00 GMTXcode 26.3 as an MCP server — letting agents drive Xcodehttps://phimage.github.io/blog/xcode-mcp-server/https://phimage.github.io/blog/xcode-mcp-server/Most MCP servers give your agent access to something external. Xcode 26.3 flips it: Xcode exposes itself as a server, so an agent in VS Code (or anywhere) can discover, build, test, and preview a real Xcode project through Xcode's own machinery.Wed, 04 Feb 2026 00:00:00 GMTChrome's built-in AI, and the CEF catch 🌐https://phimage.github.io/blog/chrome-built-in-ai/https://phimage.github.io/blog/chrome-built-in-ai/Chrome ships on-device AI (Gemini Nano) behind Web-standard APIs — translate, summarize, prompt, all local and private. The asterisk: it leans on Google-internal code that isn't in upstream Chromium, so embedded browsers (CEF) don't get it for free.Mon, 26 Jan 2026 00:00:00 GMTCopilot SDK in technical preview — and why a 4D one is within reachhttps://phimage.github.io/blog/copilot-sdk-technical-preview/https://phimage.github.io/blog/copilot-sdk-technical-preview/The Copilot SDK gives four languages programmatic access to the Copilot CLI. Under the hood it's the same trick as MCP, LSP, and ACP — spawn the CLI, talk JSON-RPC — which means any app can host an agent.Fri, 23 Jan 2026 00:00:00 GMTAgent Skills in VS Code — capabilities that load only when neededhttps://phimage.github.io/blog/agent-skills-vscode/https://phimage.github.io/blog/agent-skills-vscode/Agent Skills landed in VS Code: folders of instructions and scripts an agent loads on demand. The clever part is a three-level progressive loading scheme, so you can keep dozens installed and pay tokens only for the one that's relevant.Sat, 10 Jan 2026 00:00:00 GMTMCP, in practice: GitHub in VS Code — checked in for the teamhttps://phimage.github.io/blog/mcp-github-vscode/https://phimage.github.io/blog/mcp-github-vscode/Eight months after wondering whether anyone had tried MCP, here it is running for real: the GitHub MCP server in VS Code, wired to our issues, projects, and test cases — with the config committed to the repo so the whole team gets it on checkout.Fri, 31 Oct 2025 00:00:00 GMTContext engineering — yes it's a buzzword, but this one's realhttps://phimage.github.io/blog/context-engineering/https://phimage.github.io/blog/context-engineering/Context engineering is the step past prompt-writing: assembling everything the model needs — instructions, data, code, memory, tools — in the right format at the right time. A rebrand, sure, but one that points at where the real leverage is.Fri, 04 Jul 2025 00:00:00 GMTApple's Foundation Models — an on-device LLM in a few lines of Swift 🧠https://phimage.github.io/blog/apple-foundation-models/https://phimage.github.io/blog/apple-foundation-models/At WWDC 2025 Apple opened the on-device model behind Apple Intelligence to developers via the Foundation Models framework. The API is tiny — and I wrapped it in a CLI and an MCP server to see how far it goes.Fri, 13 Jun 2025 00:00:00 GMTHas anyone tried MCP? — and what it could mean for 4Dhttps://phimage.github.io/blog/has-anyone-tried-mcp/https://phimage.github.io/blog/has-anyone-tried-mcp/March 2025: MCP is only a few months old and not yet a standard, but people are already building real things on it. Here's the pitch — and a first sketch of what an MCP server for 4D could look like.Tue, 04 Mar 2025 00:00:00 GMTPhi Mage — who's writing, and why the logo is a φhttps://phimage.github.io/blog/hello-phimage/https://phimage.github.io/blog/hello-phimage/A short hello: who I am, what the Phimage logo means, and what these field notes will be about — AI tooling, agents, and developer workflows from where the sunlight runs out.Sat, 01 Mar 2025 00:00:00 GMT