<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tech on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/categories/tech/</link><description>Recent content in Tech on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/categories/tech/index.xml" rel="self" type="application/rss+xml"/><item><title>AI Coding Agent Ecosystem Tools — openai-oauth and Happy</title><link>https://ice-ice-bear.github.io/posts/2026-04-16-agent-ecosystem-tools/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-16-agent-ecosystem-tools/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post AI Coding Agent Ecosystem Tools — openai-oauth and Happy" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;Two community projects caught my attention this week, both extending the AI coding agent ecosystem in different directions. &lt;strong&gt;openai-oauth&lt;/strong&gt; lets you use your ChatGPT subscription&amp;rsquo;s OAuth token as a free API proxy, while &lt;strong&gt;Happy&lt;/strong&gt; gives you mobile control over Claude Code and Codex sessions with push notifications and E2E encryption.&lt;/p&gt;
&lt;h2 id="ecosystem-architecture"&gt;Ecosystem Architecture
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TB
 Dev["Developer"] --&gt; Happy["Happy CLI&amp;lt;br/&amp;gt;happy claude / happy codex"]
 Happy --&gt; CC["Claude Code"]
 Happy --&gt; Codex["OpenAI Codex"]
 Dev --&gt; Phone["Phone App&amp;lt;br/&amp;gt;Remote Control"]
 Phone --&gt;|"Push notifications&amp;lt;br/&amp;gt;Permission approvals"| Happy
 Codex --&gt; Proxy["openai-oauth Proxy&amp;lt;br/&amp;gt;127.0.0.1:10531"]
 Proxy --&gt;|"OAuth token&amp;lt;br/&amp;gt;reuse"| API["OpenAI API&amp;lt;br/&amp;gt;Free access"]&lt;/pre&gt;&lt;h2 id="openai-oauth--free-api-access-via-chatgpt-token"&gt;openai-oauth — Free API Access via ChatGPT Token
&lt;/h2&gt;&lt;p&gt;This tool uses your existing ChatGPT account&amp;rsquo;s OAuth token to access the OpenAI API without purchasing separate API credits. Run &lt;code&gt;npx openai-oauth&lt;/code&gt; and it starts a local proxy at &lt;code&gt;127.0.0.1:10531/v1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uses the same OAuth endpoint that Codex CLI uses internally&lt;/li&gt;
&lt;li&gt;Authentication via &lt;code&gt;npx @openai/codex login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;/v1/responses&lt;/code&gt;, &lt;code&gt;/v1/chat/completions&lt;/code&gt;, &lt;code&gt;/v1/models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Full support for streaming, tool calls, and reasoning traces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Important caveats:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unofficial community project, not endorsed by OpenAI&lt;/li&gt;
&lt;li&gt;Personal use only — account risk exists&lt;/li&gt;
&lt;li&gt;Interestingly, Claude/Anthropic blocked similar approaches, but OpenAI appears to tolerate it (they acquired OpenClaw, a project in this space)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="happy--mobile-control-for-ai-coding-agents"&gt;Happy — Mobile Control for AI Coding Agents
&lt;/h2&gt;&lt;p&gt;Happy is a mobile and web client that wraps Claude Code and Codex, letting you monitor and control AI sessions from your phone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key features:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI wrapper: &lt;code&gt;happy claude&lt;/code&gt; or &lt;code&gt;happy codex&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Push notifications for permission requests and errors&lt;/li&gt;
&lt;li&gt;E2E encryption for all communication&lt;/li&gt;
&lt;li&gt;Open source (MIT license), TypeScript codebase&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Components:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;App&lt;/strong&gt; — Expo-based mobile app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLI&lt;/strong&gt; — Terminal wrapper for AI agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent&lt;/strong&gt; — Bridge between CLI and server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server&lt;/strong&gt; — Relay for remote communication&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install -g happy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then scan the QR code from the mobile app to pair your phone with your terminal session.&lt;/p&gt;
&lt;h2 id="why-these-matter"&gt;Why These Matter
&lt;/h2&gt;&lt;p&gt;Both tools address the same underlying need: AI coding agents are powerful but constrained. openai-oauth removes the cost barrier for API access (at the risk of account terms), while Happy removes the physical proximity requirement for managing agent sessions. Together they represent the community pushing AI agent tooling beyond what the providers officially support.&lt;/p&gt;
&lt;p&gt;The ecosystem is rapidly evolving, with developers building bridges between tools, creating mobile control planes, and finding creative ways to maximize the value of their existing subscriptions.&lt;/p&gt;</description></item><item><title>Exa MCP Server — AI-Powered Web Search for Every AI IDE</title><link>https://ice-ice-bear.github.io/posts/2026-04-16-exa-mcp-server/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-16-exa-mcp-server/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post Exa MCP Server — AI-Powered Web Search for Every AI IDE" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/exa-labs/exa-mcp-server" target="_blank" rel="noopener"
 &gt;exa-labs/exa-mcp-server&lt;/a&gt; (4,251 stars) is an MCP server that gives AI assistants real-time web search capabilities. It works with virtually every major AI IDE: Claude Code, Cursor, VS Code, Codex, Gemini CLI, Windsurf, Zed, Warp, Kiro, Roo Code, v0, and more. The hosted endpoint at &lt;code&gt;https://mcp.exa.ai/mcp&lt;/code&gt; means one URL works everywhere with zero setup.&lt;/p&gt;
&lt;h2 id="architecture"&gt;Architecture
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 A["AI Assistant&amp;lt;br/&amp;gt;Claude, Cursor, etc."] --&gt; B["MCP Protocol"]
 B --&gt; C["Exa MCP Server"]
 C --&gt; D["Web Search"]
 C --&gt; E["Code Search"]
 C --&gt; F["Company Research"]
 D --&gt; G["Clean Results"]
 E --&gt; G
 F --&gt; G
 G --&gt; A&lt;/pre&gt;&lt;h2 id="available-tools"&gt;Available Tools
&lt;/h2&gt;&lt;p&gt;The server exposes three main MCP tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;web_search_exa&lt;/code&gt;&lt;/strong&gt; — General web search with AI-optimized results&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;web_fetch_exa&lt;/code&gt;&lt;/strong&gt; — Fetch and extract clean content from any URL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;web_search_advanced_exa&lt;/code&gt;&lt;/strong&gt; — Advanced search with filters for domain, date range, and content type&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="setup"&gt;Setup
&lt;/h2&gt;&lt;p&gt;The easiest path is the hosted MCP endpoint. Just add this URL to your AI IDE&amp;rsquo;s MCP configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://mcp.exa.ai/mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;No local server needed. It works everywhere that supports the MCP protocol.&lt;/p&gt;
&lt;p&gt;For self-hosted setups, the TypeScript codebase can be cloned and run locally.&lt;/p&gt;
&lt;h2 id="pre-built-claude-skills"&gt;Pre-Built Claude Skills
&lt;/h2&gt;&lt;p&gt;Exa provides pre-built Claude Skills for common research workflows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Company research&lt;/strong&gt; — Deep-dive into any company&amp;rsquo;s products, funding, team, and tech stack&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Competitive analysis&lt;/strong&gt; — Compare companies across dimensions with real-time data&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ide-support"&gt;IDE Support
&lt;/h2&gt;&lt;p&gt;The breadth of IDE support is impressive. Every major AI coding environment is covered: Cursor, VS Code (Copilot), Claude Desktop, Claude Code, OpenAI Codex, Windsurf, Zed, Warp, Kiro, Roo Code, v0, and more. The hosted MCP approach means adding support for a new IDE is just a configuration change.&lt;/p&gt;
&lt;h2 id="takeaway"&gt;Takeaway
&lt;/h2&gt;&lt;p&gt;Exa MCP Server solves a real pain point: AI assistants that can write code but can&amp;rsquo;t search the web for current documentation or APIs. The hosted MCP endpoint at a single URL removes the friction of running a local server, making it practical to add web search to any AI workflow.&lt;/p&gt;</description></item><item><title>Fuzzy Canary — A Clever Anti-AI Scraping Trap Using Hidden NSFW Links</title><link>https://ice-ice-bear.github.io/posts/2026-04-16-fuzzy-canary/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-16-fuzzy-canary/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post Fuzzy Canary — A Clever Anti-AI Scraping Trap Using Hidden NSFW Links" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/vivienhenz24/fuzzy-canary" target="_blank" rel="noopener"
 &gt;vivienhenz24/fuzzy-canary&lt;/a&gt; (268 stars) is a TypeScript npm package that takes a creative social-engineering approach to the AI scraping arms race. Instead of trying to block scrapers technically, it plants invisible links to pornographic websites in your HTML. When AI training pipelines crawl the page, their content safety filters detect the NSFW links and flag the entire page for exclusion from training data.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How It Works
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 A["Scraper visits page"] --&gt; B["Finds hidden&amp;lt;br/&amp;gt;NSFW links"]
 B --&gt; C["Content safety&amp;lt;br/&amp;gt;filter triggered"]
 C --&gt; D["Page excluded&amp;lt;br/&amp;gt;from training"]&lt;/pre&gt;&lt;p&gt;The mechanism is straightforward: AI training pipelines universally have content safety filters. If a scraper encounters NSFW links on a page, it flags the entire page as unsafe and excludes it from the training dataset. Fuzzy Canary exploits this by embedding invisible links that humans never see but scrapers always find.&lt;/p&gt;
&lt;h2 id="usage"&gt;Usage
&lt;/h2&gt;&lt;p&gt;Installation is simple:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm i @fuzzycanary/core
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There are two modes of operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Server-side (recommended)&lt;/strong&gt;: Use the React component &lt;code&gt;&amp;lt;Canary /&amp;gt;&lt;/code&gt; in your root layout. The links are injected at render time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client-side&lt;/strong&gt;: Auto-init script that injects links after page load.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The server-side approach is recommended because client-side injection may not be picked up by scrapers that don&amp;rsquo;t execute JavaScript.&lt;/p&gt;
&lt;h2 id="caveats"&gt;Caveats
&lt;/h2&gt;&lt;p&gt;The main trade-off is SEO impact. The hidden links are injected for &lt;strong&gt;all visitors&lt;/strong&gt;, including legitimate search engine crawlers like Googlebot. While the links are invisible to users, search engines may still index them and potentially penalize the page. This is a real consideration for production sites that depend on search traffic.&lt;/p&gt;
&lt;h2 id="takeaway"&gt;Takeaway
&lt;/h2&gt;&lt;p&gt;Fuzzy Canary is a clever &amp;ldquo;poor-man&amp;rsquo;s solution&amp;rdquo; that turns AI companies&amp;rsquo; own safety mechanisms against them. It won&amp;rsquo;t stop determined scrapers with custom pipelines, but it raises the cost of scraping for those using standard training infrastructure. A creative entry in the ongoing arms race between content creators and AI training data collection.&lt;/p&gt;</description></item></channel></rss>