---
title: "Foxl Blog"
description: "Engineering deep-dives, incident reports, measured tradeoffs, and release notes from the team building Foxl."
date_modified: "2026-10-27"
canonical_url: "https://foxl.ai/en/blog"
markdown_url: "https://foxl.ai/en/blog/index.md"
rss_url: "https://foxl.ai/rss.xml"
---

<!-- Generated by scripts/blog-publishing.mjs; do not edit. -->

# Foxl Blog

Engineering deep-dives, incident reports, measured tradeoffs, and release notes from the team building Foxl.

- Canonical HTML: [https://foxl.ai/en/blog](<https://foxl.ai/en/blog>)
- RSS: [https://foxl.ai/rss.xml](<https://foxl.ai/rss.xml>)
- Full Markdown corpus: [https://foxl.ai/en/blog/full.md](<https://foxl.ai/en/blog/full.md>)
- Articles: 69

## [Foxl v0.9.3 on Your Phone: Make, Approval Cards and One Message Bar](<https://foxl.ai/en/blog/v0-9-3-on-your-phone>)

Release note | Published 2026-10-27 | Updated 2026-10-27 | 5 min read

Foxl v0.9.3 brings more of what your computer does onto your phone. A new Make tab collects the documents, decks, sheets, pages and pictures an agent wrote on your computer, a request for your approval shows the email or command itself with Send, Approve and Not now, and Foxl Code's message bar on a phone has Chat's shape, with the repository and model in its +.

[Markdown](<https://foxl.ai/en/blog/v0-9-3-on-your-phone/index.md>)

## [Foxl v0.9.3 휴대폰: 결과물 탭, 승인 카드, 하나가 된 메시지 창](<https://foxl.ai/ko/blog/v0-9-3-on-your-phone>)

Release note | Published 2026-10-27 | Updated 2026-10-27 | 4 min read

Foxl v0.9.3에서는 컴퓨터가 하는 일을 휴대폰에서 더 많이 볼 수 있어요. 새 결과물 탭에는 에이전트가 컴퓨터에서 만든 문서, 발표 자료, 시트, 페이지, 그림이 모이고, 승인 요청은 보낼 이메일이나 실행할 명령을 그대로 보여 주며 보내기, 승인, 지금은 안 해요로 답할 수 있어요. 휴대폰의 Foxl Code 메시지 창은 채팅과 같은 모양이 됐고 저장소와 모델은 + 안에 있어요.

[Markdown](<https://foxl.ai/ko/blog/v0-9-3-on-your-phone/index.md>)

## [Offline Meeting Transcription with Speaker Labels, on Your Own Computer](<https://foxl.ai/en/blog/offline-speaker-diarization>)

Deep dive | Published 2026-10-27 | Updated 2026-10-27 | 5 min read

To transcribe a meeting offline and keep track of who said what, choose the on-device engine in Foxl Notes: it transcribes on your own computer (a Mac with Apple silicon, or a Windows or Linux x64 PC) and labels each turn Speaker 1, Speaker 2, with nothing uploaded, nothing billed and no account needed. How to set it up, what the speaker labels get right on Foxl's test recordings and where they deliberately hold back, with real screenshots of v0.9.2.

[Markdown](<https://foxl.ai/en/blog/offline-speaker-diarization/index.md>)

## [Run Gemma 4 Locally on Your Computer, Free and Offline, with No Terminal](<https://foxl.ai/en/blog/run-gemma-4-locally>)

Deep dive | Published 2026-10-27 | Updated 2026-10-27 | 4 min read

To run Google's Gemma 4 on your own computer (a Mac with Apple silicon, or a Windows or Linux x64 PC) without a terminal, choose Download under Settings > Model & provider > On this device in Foxl: it brings the model and the engine that runs it, and then you chat with it offline, with no API key and no account. Which of E2B, E4B and 12B fits your memory, what it can do in Foxl, and what it cannot, with real screenshots of v0.9.2.

[Markdown](<https://foxl.ai/en/blog/run-gemma-4-locally/index.md>)

## [젬마 4 설치: 명령어 없이 내 컴퓨터에서 무료로 쓰는 법](<https://foxl.ai/ko/blog/run-gemma-4-locally>)

Deep dive | Published 2026-10-27 | Updated 2026-10-27 | 3 min read

구글의 젬마 4(Gemma 4)를 터미널 없이 내 컴퓨터(Apple 실리콘 Mac, x64 Windows나 Linux PC)에 설치하려면 Foxl의 설정 > 모델/제공자 > 이 기기에서 실행에서 다운로드를 누르면 돼요. 모델과 엔진을 함께 내려받고, 그다음엔 API 키도 계정도 없이 오프라인에서 대화할 수 있어요. 메모리에 맞는 모델 고르는 법, Foxl에서 할 수 있는 일과 못 하는 일을 v0.9.2의 실제 화면으로 정리했어요.

[Markdown](<https://foxl.ai/ko/blog/run-gemma-4-locally/index.md>)

## [화자 분리 프로그램: 회의 녹음을 내 컴퓨터에서 무료로 나누는 법](<https://foxl.ai/ko/blog/offline-speaker-diarization>)

Deep dive | Published 2026-10-27 | Updated 2026-10-27 | 3 min read

회의 녹음을 화자별로 나눠서 받아 적고 싶다면 Foxl Notes의 온디바이스 엔진을 고르면 돼요. 내 컴퓨터(Apple Silicon Mac, x64 Windows나 Linux PC)에서 받아 적고 발언마다 화자 1, 화자 2를 붙여 주는데, 아무것도 올리지 않고 요금도 계정도 필요 없어요. 설정하는 법, Foxl의 테스트 녹음에서 화자 라벨이 얼마나 맞았는지, 일부러 조심하는 지점까지 v0.9.2의 실제 화면으로 정리했어요.

[Markdown](<https://foxl.ai/ko/blog/offline-speaker-diarization/index.md>)

## [Claude Code, Codex, OpenCode가 내 답을 기다리는지 아는 법](<https://foxl.ai/ko/blog/coding-agent-waiting-for-input>)

Deep dive | Published 2026-10-23 | Updated 2026-10-23 | 11 min read

Claude Code는 hook 세 개로 지금 내 답을 기다리고 있다고 알려 줘요. AskUserQuestion에 거는 PreToolUse, permission\_prompt 타입의 Notification, 그리고 마지막 답장이 물음표로 끝나는 Stop이에요. idle\_prompt는 어떤 답장이든 끝난 뒤 아무도 입력하지 않으면 오니까 무시해야 해요. Foxl Code가 원격 터미널에 쓰는 CLI별 정리(Claude Code, Codex, OpenCode, Hermes), 각 CLI가 보고하지 못하는 것, 에이전트에 부담을 적게 주고 실수로 프롬프트에 끼어들지 않는 hook 작성법을 담았어요.

[Markdown](<https://foxl.ai/ko/blog/coding-agent-waiting-for-input/index.md>)

## [How to Tell When Claude Code, Codex or OpenCode Is Waiting for You](<https://foxl.ai/en/blog/coding-agent-waiting-for-input>)

Deep dive | Published 2026-10-23 | Updated 2026-10-23 | 12 min read

Claude Code tells you it is waiting through three hooks: PreToolUse on AskUserQuestion, a permission\_prompt Notification, and a Stop whose last message ends with a question. Ignore idle\_prompt, which arrives after any reply nobody answers. Here is the map Foxl Code uses for remote Claude Code, Codex, OpenCode and Hermes terminals, what each CLI cannot report, and how to write a hook that costs the agent little and never talks to the model by accident.

[Markdown](<https://foxl.ai/en/blog/coding-agent-waiting-for-input/index.md>)

## [Several Coding Agents, One Repository: Claims Instead of Locks](<https://foxl.ai/en/blog/parallel-coding-agents-file-claims>)

Deep dive | Published 2026-10-23 | Updated 2026-10-23 | 11 min read

Parallel coding agents collide at merge time because none of them knows what the others are editing. Foxl Code's cloud agents are now told to claim the files they are about to change, and hear back which of your other live agents already claimed an overlapping path. A claim is recorded either way and nothing is locked; the agent is told to send the holder the change, wait, or ask you. Real output from the shipped command, the glob rules, the database cost, and the question still open: whether agents follow the rule.

[Markdown](<https://foxl.ai/en/blog/parallel-coding-agents-file-claims/index.md>)

## [Why Our Cloud Agent Missed Its Prompt Cache, and What a One-Hour TTL Changed](<https://foxl.ai/en/blog/agent-prompt-cache-hit-rate>)

Deep dive | Published 2026-10-23 | Updated 2026-10-23 | 14 min read

Foxl's cloud agent read 42.6% of its input from the prompt cache over its first 19 production turns, and every large write followed a gap longer than the cache's five-minute lifetime. A one-hour TTL took a measured nine-call session from 71.8% to 85.7% (93.9% after the first call) and cut its total cost 8%, though a chat that ends within five minutes pays about 23% more than it would with a five-minute TTL. How to measure the ratio, where the four breakpoints go, when the longer TTL pays, and what caps it.

[Markdown](<https://foxl.ai/en/blog/agent-prompt-cache-hit-rate/index.md>)

## [코딩 에이전트 여러 개가 한 저장소에서 일할 때: 잠금 대신 claim](<https://foxl.ai/ko/blog/parallel-coding-agents-file-claims>)

Deep dive | Published 2026-10-23 | Updated 2026-10-23 | 9 min read

코딩 에이전트를 여러 개 동시에 돌리면 머지할 때 부딪혀요. 서로 무엇을 고치는지 모르니까요. 이제 Foxl Code의 클라우드 에이전트는 고치려는 파일을 먼저 claim하라는 안내를 받아요. 겹치는 경로를 이미 claim한 다른 실행 중인 에이전트가 있으면, 그 에이전트가 누구인지 알려 줘요. claim은 겹쳐도 기록되고 아무것도 잠기지 않아요. 배포된 명령의 실제 출력, glob 규칙, 데이터베이스 비용, 그리고 아직 답을 모르는 질문, 곧 에이전트가 이 규칙을 정말 따르는지까지 정리했어요.

[Markdown](<https://foxl.ai/ko/blog/parallel-coding-agents-file-claims/index.md>)

## [클라우드 에이전트가 프롬프트 캐시를 놓친 이유와 1시간 TTL로 달라진 점](<https://foxl.ai/ko/blog/agent-prompt-cache-hit-rate>)

Deep dive | Published 2026-10-23 | Updated 2026-10-23 | 12 min read

Foxl의 클라우드 에이전트는 처음 19번의 실서비스 턴에서 입력의 42.6%를 프롬프트 캐시에서 읽었어요. 큰 캐시 쓰기는 모두 캐시 수명 5분보다 오래 쉰 뒤에 나왔어요. 1시간 TTL을 주자 9번 호출 세션의 적중률이 71.8%에서 85.7%로(첫 호출 뒤로는 93.9%) 오르고 총비용은 8% 줄었어요. 대신 5분 안에 끝나는 대화는 23%쯤 더 들어요. 적중률을 재는 법, breakpoint 네 개를 두는 자리, 1시간 TTL이 이득인 조건, 적중률의 천장을 정리했어요.

[Markdown](<https://foxl.ai/ko/blog/agent-prompt-cache-hit-rate/index.md>)

## [Foxl v0.9.0: What Eleven Betas Changed](<https://foxl.ai/en/blog/v0-9-0>)

Deep dive | Published 2026-10-19 | Updated 2026-10-19 | 13 min read

Foxl v0.9.0 is the stable release of the eleven v0.8.8 betas. The iPhone and Android apps have a look of their own, down to pets that tell you which kind of empty screen you are on; Files on a phone opens one folder at a time, about 3 KB per visit instead of 2 MB on an 11,000-file workspace; and a reply your computer is still writing no longer turns into an error when you leave the app and come back. Foxl Notes copies and exports each part of a note and briefs you before a meeting, computer use on a Mac reaches inside Electron apps, and Foxl Code's Ops page is now Operation.

[Markdown](<https://foxl.ai/en/blog/v0-9-0/index.md>)

## [Foxl v0.9.0: 베타 열한 번이 바꾼 것들](<https://foxl.ai/ko/blog/v0-9-0>)

Deep dive | Published 2026-10-19 | Updated 2026-10-19 | 10 min read

Foxl v0.9.0은 v0.8.8 베타 열한 개를 모은 정식 릴리스예요. 아이폰과 안드로이드 앱은 빈 화면의 종류까지 펫으로 알려 주는 자기만의 모습을 갖췄고, 휴대폰의 파일은 폴더 하나씩 열려서 파일 11,000개짜리 작업 공간에서도 한 번에 2MB 대신 3KB쯤만 받아요. 컴퓨터가 아직 쓰고 있는 답장은 앱을 잠깐 나갔다 와도 더 이상 오류로 바뀌지 않아요. Foxl Notes는 노트의 각 부분을 따로 복사하고 내보내며 미팅 전에 브리핑을 보여 주고, Mac의 컴퓨터 사용은 Electron 앱 안까지 닿고, Foxl Code의 Ops 페이지는 운영이 됐어요.

[Markdown](<https://foxl.ai/ko/blog/v0-9-0/index.md>)

## [The Model That Learned to Choose: the Story of Bobcat](<https://foxl.ai/en/blog/bobcat-learned-to-choose>)

Deep dive | Published 2026-10-09 | Updated 2026-10-14 | 21 min read

Bobcat never writes a word: asked which option is right, it returns one probability per option. This is the whole story in plain words: why we stopped training from scratch, what supervised fine-tuning bought, why reinforcement learning matched an answer key without beating it, what the top of the public JevBench board taught us about the confidence dial, and how Bobcat 1.2 stopped falling for planted instructions (46.4% to 6.4%) once we found a shortcut in its training data. Bobcat Flash 1.2 placed sixth on the board; our own run of Bobcat 1.2 on the public items suggests more, which only an official measurement can confirm. Update: Bobcat 1.3 ties for third on the Jev Decision Index, at 62.8 against Jev's 60.1, and is the fastest of the models that beat Jev.

[Markdown](<https://foxl.ai/en/blog/bobcat-learned-to-choose/index.md>)

## [고르는 법을 배운 모델, Bobcat 이야기](<https://foxl.ai/ko/blog/bobcat-learned-to-choose>)

Deep dive | Published 2026-10-09 | Updated 2026-10-14 | 17 min read

Bobcat은 글을 한 글자도 쓰지 않아요. 무엇이 맞는지 물으면 보기마다 확률을 하나씩 돌려줘요. 처음부터 키우기를 왜 그만뒀는지, 지도 학습으로 무엇을 얻었는지, 강화 학습이 왜 정답지 학습과 똑같은 데 그쳤는지, 공개 순위표 JevBench의 상위권에서 자신감 다이얼에 대해 무엇을 배웠는지, 그리고 학습 자료 속 지름길을 찾아 Bobcat 1.2가 문서 속 속임수에 넘어가는 비율을 46.4%에서 6.4%로 줄인 이야기를 쉬운 말로 풀었어요. Bobcat Flash 1.2는 순위표 6위였고, 공개 문제로 우리가 잰 Bobcat 1.2는 그보다 높을 것으로 보여요. 확인은 공식 측정이 해 줄 거예요. 덧붙임: Bobcat 1.3은 Jev Decision Index에서 62.8점으로 공동 3위에 올랐어요. Jev는 60.1점이에요. Jev보다 점수가 높은 모델 중에서는 가장 빨라요.

[Markdown](<https://foxl.ai/ko/blog/bobcat-learned-to-choose/index.md>)

## [Computer use on Mac: let an AI agent use your apps](<https://foxl.ai/en/blog/computer-use-mac>)

Deep dive | Published 2026-10-08 | Updated 2026-10-08 | 7 min read

Turn on computer use in Foxl, give macOS two permissions, and an AI agent presses buttons and types in your Mac apps with its own pointer. Which models do it well, measured, including OpenRouter and free ones.

[Markdown](<https://foxl.ai/en/blog/computer-use-mac/index.md>)

## [컴퓨터 유즈 사용방법: 맥에서 AI가 앱을 직접 조작하게 하기](<https://foxl.ai/ko/blog/computer-use>)

Deep dive | Published 2026-10-08 | Updated 2026-10-08 | 6 min read

Foxl에서 컴퓨터 유즈를 켜고 macOS 권한 두 개만 주면, AI 에이전트가 자기 포인터로 내 Mac 앱의 버튼을 누르고 글을 입력해요. 어떤 모델이 잘하는지도 오픈라우터 무료 모델까지 직접 재 봤어요.

[Markdown](<https://foxl.ai/ko/blog/computer-use/index.md>)

## [AI Plays Pokémon Gold: Bobcat, from a New Game to 16 Badges](<https://foxl.ai/en/blog/bobcat-plays-pokemon-gold>)

Deep dive | Published 2026-10-06 | Updated 2026-10-14 | 12 min read

Bobcat never writes a word: it reads a state and returns one probability per option. We put the Korean edition of Pokémon Gold behind a harness that only states facts and lists the actions the game allows, gave Bobcat a strategy guide, and let it make every choice from a new game. Twenty new games at one commit, with nothing changed while they ran: 17 won all 16 badges, a median of 19.3 game hours each. A second batch at another commit ended the same, 17 of 20. Random answers on the same harness won no badge. One more game was recorded in full; the six that stalled are listed with why.

[Markdown](<https://foxl.ai/en/blog/bobcat-plays-pokemon-gold/index.md>)

## [AI가 포켓몬스터 금을 처음부터 플레이했어요](<https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold>)

Deep dive | Published 2026-10-06 | Updated 2026-10-14 | 9 min read

Bobcat은 글을 한 글자도 쓰지 않아요. 상태를 읽고 선택지마다 확률을 하나씩 돌려줄 뿐이에요. 포켓몬스터 금 한국어판을 사실만 알려 주는 하네스 뒤에 두고, 공략집을 준 다음 새 게임부터 모든 선택을 맡겼어요. 한 커밋으로 새 게임 20판을 도중 수정 없이 돌렸더니 17판이 배지 16개를 모두 땄고, 게임 시간 중앙값은 19.3시간이었어요. 다른 커밋으로 돌린 첫 배치도 20판 중 17판이었어요. 같은 하네스에 무작위로 답하게 하면 배지를 하나도 따지 못했어요. 세 판을 더 돌려 녹화했고, 멈춘 여섯 판은 까닭과 함께 적었어요.

[Markdown](<https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold/index.md>)

## [Amazon Bedrock을 데스크톱 앱에서 쓰는 법](<https://foxl.ai/ko/blog/amazon-bedrock-desktop-client>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 5 min read

Mac, Windows, Linux용 무료 데스크톱 앱에서 Claude와 다른 Amazon Bedrock 모델을 AWS 프로필이나 SSO 로그인으로 쓰는 방법이에요. 서울 리전과 API 키 이야기도 담았어요.

[Markdown](<https://foxl.ai/ko/blog/amazon-bedrock-desktop-client/index.md>)

## [How to check your Codex usage, and how its limits work](<https://foxl.ai/en/blog/codex-usage-limits>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 4 min read

Where to see your Codex usage (the dashboard, /status in the CLI), which plans have five-hour and weekly limits, and what to do when you hit one, from OpenAI docs.

[Markdown](<https://foxl.ai/en/blog/codex-usage-limits/index.md>)

## [Use Amazon Bedrock from a desktop app](<https://foxl.ai/en/blog/amazon-bedrock-desktop-client>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 5 min read

Chat with Claude and other Amazon Bedrock models from a free desktop app on Mac, Windows and Linux, signed with your AWS profile or SSO login.

[Markdown](<https://foxl.ai/en/blog/amazon-bedrock-desktop-client/index.md>)

## [Use OpenRouter in a desktop app on Mac, Windows and Linux](<https://foxl.ai/en/blog/openrouter-desktop-app>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 7 min read

Use OpenRouter from a free desktop app on Mac, Windows and Linux: create a key, pick free models, and know the 50 and 1000 requests-per-day limits.

[Markdown](<https://foxl.ai/en/blog/openrouter-desktop-app/index.md>)

## [Use the Codex CLI from your phone](<https://foxl.ai/en/blog/codex-cli-from-phone>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 5 min read

Use Codex on mobile two ways: OpenAI’s remote connections for the ChatGPT desktop app, or a real terminal on your Mac, Windows or Linux PC for the Codex CLI.

[Markdown](<https://foxl.ai/en/blog/codex-cli-from-phone/index.md>)

## [오픈라우터(OpenRouter) 사용법: 키 발급부터 무료 모델까지](<https://foxl.ai/ko/blog/openrouter>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 6 min read

오픈라우터 API 키 발급, 무료 모델(:free) 고르는 법, 하루 50회와 1000회 무료 한도, 크레딧 수수료를 정리했어요. Mac, Windows, Linux 데스크톱 앱에서 바로 쓰는 방법도 알려 드려요.

[Markdown](<https://foxl.ai/ko/blog/openrouter/index.md>)

## [코덱스(Codex) 사용량 확인하는 법과 한도 정리](<https://foxl.ai/ko/blog/codex-usage-limits>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 3 min read

코덱스(Codex) 남은 사용량은 어디서 보는지(사용량 대시보드, CLI /status), 5시간과 주간 한도는 어떤 요금제에 걸리는지, 한도에 걸리면 뭘 할 수 있는지 OpenAI 공식 문서를 바탕으로 정리했어요.

[Markdown](<https://foxl.ai/ko/blog/codex-usage-limits/index.md>)

## [폰에서 코덱스(Codex) 쓰는 법: 원격 연결과 CLI](<https://foxl.ai/ko/blog/codex-mobile>)

Deep dive | Published 2026-10-06 | Updated 2026-10-07 | 4 min read

폰에서 코덱스(Codex)를 쓰는 방법은 두 가지예요. OpenAI 원격 연결(ChatGPT 데스크톱 앱)과, Windows, Mac, Linux PC의 Codex CLI를 폰 터미널로 여는 방법을 비교했어요.

[Markdown](<https://foxl.ai/ko/blog/codex-mobile/index.md>)

## [Introducing Kiln: LLM Inference on AWS Trainium](<https://foxl.ai/en/blog/introducing-kiln>)

Deep dive | Published 2026-10-05 | Updated 2026-10-05 | 25 min read

Kiln, Foxl's open-source LLM inference engine for AWS Trainium, serves GLM-5.3-Flash on one trn1.32xlarge spot instance at $4.86 per million output tokens at 64 concurrent requests: 11-16% below vLLM on eight H200 GPUs priced at their own spot band, and 73-75% below at 16. How it was measured, the changes that took the model from 19.4 to 122.9 output tokens a second, the ideas that did not pay, the bugs only the device showed, and what Kiln does not win: latency, concurrency 128, trn2 and on-demand prices.

[Markdown](<https://foxl.ai/en/blog/introducing-kiln/index.md>)

## [One Request, One Answer: Fixing Subagent Delegation](<https://foxl.ai/en/blog/subagents-one-answer>)

Deep dive | Published 2026-10-03 | Updated 2026-10-03 | 16 min read

In 30 days of one real Foxl install, 51 of the 71 delegations that ended in a synthesis were followed by two long replies: one from the turn that delegated, one from the subagents' results. Measured on real models before and after this release: GPT-6 Astra stops doing the delegated work itself and stops repeating its answer (5 of 12 delegations to none) at half the cost per delegated request, forked subagents stop refusing their own task as a prompt injection, and a subagent that reports without using a tool is asked once to do the work. The prompt cache hit rate stays where it was.

[Markdown](<https://foxl.ai/en/blog/subagents-one-answer/index.md>)

## [GPT-6 Astra Ultrafast: Same Model, a Third of the Time](<https://foxl.ai/en/blog/gpt-6-astra-ultrafast>)

Deep dive | Published 2026-10-01 | Updated 2026-10-01 | 11 min read

GPT-6 Astra on Amazon Bedrock's Ultrafast tier, side by side with Standard in Foxl: one prompt sent to two windows at the same moment, sixteen times. Ultrafast finished first in all sixteen, at a median of 7.1 seconds against 20.9, and in direct API calls it streamed past the 300 tokens a second AWS quotes. How it was measured, why the multiple is three and not six, what the switch does and does not do, and what it costs.

[Markdown](<https://foxl.ai/en/blog/gpt-6-astra-ultrafast/index.md>)

## [Bobcat: Typed Decisions from One Forward Pass](<https://foxl.ai/en/blog/bobcat-typed-decisions>)

Deep dive | Published 2026-09-25 | Updated 2026-10-14 | 41 min read

A technical report on Bobcat, a model that answers typed questions about a state without generating a token. It covers the readout, the training, including two reinforcement-learning experiments in which a proper-score reward matched direct Brier training without beating it, and the evaluation: 94.3% on a sealed final opened once against 87.9% for the same model zero-shot, and, on the 20 workflow examples TypeSafe published for Jev, 92.1% agreement with TypeSafe's reference against 90.9% for Jev, with more probability on the reference answer. Bobcat is slower per case, and it still struggles to say that the evidence is insufficient.

[Markdown](<https://foxl.ai/en/blog/bobcat-typed-decisions/index.md>)

## [Four Models, and a Version String](<https://foxl.ai/en/blog/v0-7-25-models>)

Release note | Published 2026-09-22 | Updated 2026-09-22 | 7 min read

Foxl v0.7.25 adds Claude Opus 5.5, GPT-6 Sol, GPT-6 Luna and Kimi K3, and removes GPT-5.4 Mini from the ChatGPT sign-in because it answered HTTP 400 to every request it had ever been sent. Opus 5.5 takes the default at $4 and $20 per million tokens, below the Opus 5 it replaces, and reaching it on a Claude Pro subscription needed a nineteen-version jump in the client version Foxl reports - without it every request for that model failed while the picker looked fine. GPT-6 Sol and Luna arrive at half their GPT-5.6 counterparts' prices, with reasoning that can be switched off and file input that was confirmed by asking the model to quote a codeword out of the file. Every number here is a real signed request.

[Markdown](<https://foxl.ai/en/blog/v0-7-25-models/index.md>)

## [Twenty-one Releases in Thirteen Days](<https://foxl.ai/en/blog/v0-7-series-what-shipped>)

Release note | Published 2026-09-15 | Updated 2026-09-15 | 8 min read

Foxl v0.7.0 shipped on September 3 and v0.7.20 on September 15. Two other posts cover what went wrong in that window; this is what changed for somebody using the product. Cloud terminals became arrangeable, stopped killing their agent when you close a pane, and started showing what they spend - read out of the accounting each coding CLI keeps for itself rather than estimated, so Kiro reports the credits you have left and Hermes on Bedrock reports no price at all. Saving got ten times faster and search returned fifty times less data, both measured on a real 1.3 GB database. GPT-6 Astra arrived on Bedrock the day AWS made it available, and the reasoning effort you pick on that route now takes effect instead of being accepted and ignored. And four request limits shipped in v0.7.1 were switched off a day later, because the thresholds sat inside normal use.

[Markdown](<https://foxl.ai/en/blog/v0-7-series-what-shipped/index.md>)

## [A Citation Is Not a Measurement](<https://foxl.ai/en/blog/a-citation-is-not-a-measurement>)

Deep dive | Published 2026-09-14 | Updated 2026-09-14 | 20 min read

AWS documents that a session header routes requests to the same machine. We quoted that sentence correctly and built a remote terminal on it. The qualifier nobody wrote down is concurrency: measured on production, a second request sent while that session's own stream is open reaches a different machine every time - so every keystroke in every Foxl Code terminal from v0.6.0 to v0.7.2 was delivered somewhere with no terminal in it. Four correct fixes shipped downstream of a transport that could not deliver. Plus a release published with an empty TestFlight, a package manager serving a week-old build behind one-second green runs, a header that never carries the bytes it claims, and a workflow file that grew until CI stopped reading it.

[Markdown](<https://foxl.ai/en/blog/a-citation-is-not-a-measurement/index.md>)

## [Every Gate Was Green](<https://foxl.ai/en/blog/v0-7-every-gate-was-green>)

Deep dive | Published 2026-09-04 | Updated 2026-09-04 | 9 min read

Foxl v0.7.0 and v0.7.1 closed about ninety fixes. Four of them had been true for months while every automated check passed: Windows had refused forty consecutive updates because our certificate is self-signed and the check only compares a publisher name when Windows calls the signature fully valid; Intel Macs had no image features at all, silently, because the universal build only ever carried the Apple silicon copy of the image library; every Windows build stamped its own version 0.0.0. Then v0.7.1 shipped unable to start - the new window security policy refused the app's own start-up script - and was withdrawn. This is what each of them looked like, and why a check that asserts a spelling is worse than no check.

[Markdown](<https://foxl.ai/en/blog/v0-7-every-gate-was-green/index.md>)

## [The Encryption That Threw Away the Compression](<https://foxl.ai/en/blog/v0-6-28-technical-gotchas>)

Deep dive | Published 2026-09-02 | Updated 2026-09-02 | 18 min read

Seven releases in seven days, v0.6.22 through v0.6.28: the desktop tunnel gained end-to-end encryption on all but its streaming paths, Foxl Notes learned to transcribe on the Mac itself, and nineteen bring-your-own-key vendors got real controls. Encrypting the tunnel turned a 224 KB download into 1536 KB, because ciphertext does not compress. Amazon Transcribe accepted a socket for a whole meeting and refused to transcribe a word of it. A cached token was counted twice and then priced, so $0.38 of usage read as $4.21. Twelve technical gotchas, each with the number that made it visible.

[Markdown](<https://foxl.ai/en/blog/v0-6-28-technical-gotchas/index.md>)

## [Nothing on the Screen Was Bigger Than Anything Else](<https://foxl.ai/en/blog/v0-6-design-changes>)

Deep dive | Published 2026-08-27 | Updated 2026-08-27 | 22 min read

Twenty-two releases in seventeen days, v0.6.0 through v0.6.21, and most of what changed was the interface. Every page title on a phone rendered at 22px instead of 28px, so a channel label and a screen name came out identical and no screen had a place for the eye to start. It covers the thresholds that settled the design pass, 477px of Settings spent on one field, 124px of empty band above the keyboard, and the six changes that passed every check, shipped, and had to come back out.

[Markdown](<https://foxl.ai/en/blog/v0-6-design-changes/index.md>)

## [The Pet We Drew Three Times](<https://foxl.ai/en/blog/pet-plush-companions>)

Deep dive | Published 2026-08-09 | Updated 2026-08-09 | 12 min read

Foxl has a companion that walks around your screen, and its art was rebuilt three times before it read as a toy. Thirty hand-drawn 16x16 sprites painted 118 of 256 cells and came out as speckle. A generated version fixed the family and shipped a cast that was visibly wearing sunglasses. Now it is 185 drawn frames - and getting them off the artist's spritesheet took seven failed strategies, every one of which produced perfectly plausible files holding the wrong animal.

[Markdown](<https://foxl.ai/en/blog/pet-plush-companions/index.md>)

## [The Comments That Kept Their Own Bugs Alive](<https://foxl.ai/en/blog/v0-5-9-measuring-what-shipped>)

Deep dive | Published 2026-08-01 | Updated 2026-08-01 | 16 min read

Nine releases in six days, v0.5.1 through v0.5.9, and almost none of the defects in them were reported by anyone. One comment said the platform would not let us hash any harder, so password storage stayed six times weaker than the standard asks for. Another said Xcode would rewrite the entitlement on the way to the App Store, which is why no iPhone could receive a notification. A \# in a model name got Fable 5 served and Gemini 2.5 Flash billed. A trash route answered nothing for 142 days.

[Markdown](<https://foxl.ai/en/blog/v0-5-9-measuring-what-shipped/index.md>)

## [Foxl v0.5.0: The Notifications That Were Never Sent](<https://foxl.ai/en/blog/v0-5-0-notifications-that-arrive>)

Incident | Published 2026-07-26 | Updated 2026-07-26 | 7 min read

Push notifications had never reached a single device since we shipped them. Apple hands over a device token once per install, seconds after launch, and we discarded it whenever nobody was signed in yet. Also in v0.5.0: files that would not open in the web app, and an idle app making about seventy thousand requests a day.

[Markdown](<https://foxl.ai/en/blog/v0-5-0-notifications-that-arrive/index.md>)

## [Foxl v0.4.22: Claude Opus 5 Is the New Default](<https://foxl.ai/en/blog/v0-4-22-opus-5-day-one>)

Release note | Published 2026-07-24 | Updated 2026-07-24 | 6 min read

Claude Opus 5 is Anthropic's most intelligent model, and it ships as the default across Foxl Agent, Foxl Code, and Foxl Notes on day one - at the same price as Opus 4.8 and half of Fable 5. Auditing every model engine for the launch also turned up a Gemini CLI that returned empty replies to every request, aliases pointing at the wrong generation, and a pricing table in our own docs that was wrong by a factor of nine.

[Markdown](<https://foxl.ai/en/blog/v0-4-22-opus-5-day-one/index.md>)

## [Five Releases in One Day: The Engine Is Foxl Code Itself](<https://foxl.ai/en/blog/five-releases-one-day>)

Deep dive | Published 2026-07-22 | Updated 2026-07-22 | 6 min read

On July 22 Foxl shipped v0.4.15 through v0.4.19, five production releases, each to six web surfaces, a notarized macOS build and iOS TestFlight. How Foxl Code working on the Foxl monorepo made that routine, including a hotfix for empty replies on mobile released the day it was reported and a Liquid Glass experiment reverted after it failed on real devices.

[Markdown](<https://foxl.ai/en/blog/five-releases-one-day/index.md>)

## [Foxl v0.4.15: The Tabs That Vanished (and the Phone That Forgot)](<https://foxl.ai/en/blog/v0-4-15-the-tabs-that-vanished>)

Release note | Published 2026-07-22 | Updated 2026-07-22 | 5 min read

Skills, Channels, and custom MCP tools were still in the app but unreachable, because their tab bar lived in a header that Settings never renders. v0.4.15 restores the tabs inside Settings, removes the gradient carousels, and fixes several mobile bugs with one cause: iOS routinely restarts a suspended app from scratch.

[Markdown](<https://foxl.ai/en/blog/v0-4-15-the-tabs-that-vanished/index.md>)

## [Hearing the Whole Meeting: How an Empty AirPods Transcript Rewrote Two Releases](<https://foxl.ai/en/blog/hearing-the-whole-meeting>)

Deep dive | Published 2026-07-21 | Updated 2026-10-07 | 12 min read

An AirPods recording came back empty because Foxl captured system audio only when live translation was on; on speakers, the mic had been picking up the other side by accident. v0.4.13 and v0.4.14 made system audio the default, added an inaudible tone that detects a missing macOS permission, moved iOS recording into native Swift, and closed six gaps in a ten-item phone-app audit.

[Markdown](<https://foxl.ai/en/blog/hearing-the-whole-meeting/index.md>)

## [Foxl v0.4.12: The Quiet Fixes](<https://foxl.ai/en/blog/v0-4-12-quiet-fixes>)

Release note | Published 2026-07-20 | Updated 2026-07-20 | 4 min read

Foxl v0.4.12 fixes small defects: a single tilde no longer strikes through text, chats still answering in the background show a spinner in the sidebar, the mobile keyboard docks without stuttering, and the phone has notification settings of its own.

[Markdown](<https://foxl.ai/en/blog/v0-4-12-quiet-fixes/index.md>)

## [Foxl v0.4.10: A Mobile-First Redesign](<https://foxl.ai/en/blog/v0-4-10-mobile-redesign>)

Release note | Published 2026-07-17 | Updated 2026-07-17 | 5 min read

v0.4.10 rebuilds the phone experience around native conventions - a reveal-drawer sidebar, a settings sheet shared by all three products, swipe-to-manage chats, a keyboard the composer follows, and a glass message bar - and closes a set of production bugs around credits, error visibility, and dead tunnel connections.

[Markdown](<https://foxl.ai/en/blog/v0-4-10-mobile-redesign/index.md>)

## [Designing Connection Ownership for Always-On AI Agents](<https://foxl.ai/en/blog/one-session-per-device>)

Incident | Published 2026-07-16 | Updated 2026-07-16 | 5 min read

v0.4.7 fixed duplicate device sessions and fenced stale desktop sockets, then v0.4.8 and v0.4.9 exposed the missing distinction between liveness, connection-generation ownership, and in-flight request correlation. This is the full incident sequence and the contract that replaced it.

[Markdown](<https://foxl.ai/en/blog/one-session-per-device/index.md>)

## [Choosing a Source of Truth for Agent Conversations](<https://foxl.ai/en/blog/two-stores-one-conversation>)

Incident | Published 2026-07-12 | Updated 2026-07-16 | 5 min read

The UI ledger and the agent snapshot drifted through head trimming, synthetic cancel turns, and interrupted saves. The fix made user-visible SQLite history authoritative on normal cold restores and kept snapshots as derived history or fallback data.

[Markdown](<https://foxl.ai/en/blog/two-stores-one-conversation/index.md>)

## [Your Meeting Was Transcribed Twice. Deleting Code Fixed It.](<https://foxl.ai/en/blog/meeting-transcribed-twice>)

Incident | Published 2026-07-12 | Updated 2026-10-07 | 6 min read

Two independent transcription pipelines appended two rows for the same utterance when the microphone re-heard speaker output. Mixing both captures into one ASR stream removed the two-writer failure mode and let us delete the similarity filter.

[Markdown](<https://foxl.ai/en/blog/meeting-transcribed-twice/index.md>)

## [The Checksum Byte That Ate Your Long Answers](<https://foxl.ai/en/blog/stream-cutoff-binary-frames>)

Incident | Published 2026-06-26 | Updated 2026-07-16 | 5 min read

Long Foxl replies were cut off because the relay decoded Amazon Bedrock's binary event-stream as text and scanned it for JSON braces. A framing byte equal to 0x22, a double quote, could put the scanner into string mode, and on a captured 32 KB stream it lost 70 of 119 events. This covers the length-based parser that replaced it and the fixture test that pins it.

[Markdown](<https://foxl.ai/en/blog/stream-cutoff-binary-frames/index.md>)

## [Foxl v0.3.3: What "Day-One Support" Actually Shipped](<https://foxl.ai/en/blog/v0-3-3-fable-5>)

Release note | Published 2026-06-09 | Updated 2026-07-16 | 4 min read

A corrected release record for Fable 5: what Foxl integrated on June 9, why provider suspension was a separate state, and how a later Bedrock profile change forced routing to move from global to us.

[Markdown](<https://foxl.ai/en/blog/v0-3-3-fable-5/index.md>)

## [Building Foxl Mobile from a Shared React Codebase](<https://foxl.ai/en/blog/v0-3-0-foxl-mobile>)

Deep dive | Published 2026-06-08 | Updated 2026-07-16 | 7 min read

Foxl v0.3.0 reused a shared React source tree across hosted web, Electron, and a Capacitor iOS host, with runtime-specific builds and platform integration. The hard parts were keyboard docking and safe-area ownership without offsetting touch targets.

[Markdown](<https://foxl.ai/en/blog/v0-3-0-foxl-mobile/index.md>)

## [Foxl v0.2.51: Notes Integration and the Recording Gates](<https://foxl.ai/en/blog/v0-2-51-foxl-notes-joins-foxl-desktop>)

Release note | Published 2026-06-07 | Updated 2026-07-16 | 5 min read

The Notes shell integration first landed in v0.2.50. v0.2.51 kept it, fixed GPT-5.x routing, and began a microphone repair that required four production gates and was complete only in v0.2.53.

[Markdown](<https://foxl.ai/en/blog/v0-2-51-foxl-notes-joins-foxl-desktop/index.md>)

## [Designing Durable Coding Agents with Reconciliation Loops](<https://foxl.ai/en/blog/foxl-code-autonomous-agents>)

Deep dive | Published 2026-05-19 | Updated 2026-07-16 | 10 min read

Foxl Code treats autonomy as a reconciliation loop over approved plans, task state, isolated runtimes, budget-scoped credentials, durable lifecycle events, and eventually consistent GitHub effects.

[Markdown](<https://foxl.ai/en/blog/foxl-code-autonomous-agents/index.md>)

## [Making foxl.ai Crawlable with Next.js Static Export](<https://foxl.ai/en/blog/nextjs-seo-migration>)

Deep dive | Published 2026-05-13 | Updated 2026-07-16 | 6 min read

foxl.ai moved from a Vite single-page app to a Next.js static export so every public route returns its title, metadata, structured data and visible copy in the first HTML response. What the Cloudflare Worker still does, what static export gives up, and why none of it guarantees indexing.

[Markdown](<https://foxl.ai/en/blog/nextjs-seo-migration/index.md>)

## [Foxl v0.2.27: Trimming the Sidebar, the Skill Library, and the Tray](<https://foxl.ai/en/blog/v0-2-27>)

Release note | Published 2026-05-09 | Updated 2026-07-16 | 5 min read

Integrations became third-party only, the default skill set was reduced, and redundant built-in tools moved behind the general execution path. The release also simplified the tray and exposed credit usage in the account surface.

[Markdown](<https://foxl.ai/en/blog/v0-2-27/index.md>)

## [Foxl v0.2.23: Notifications That Actually Do Something](<https://foxl.ai/en/blog/v0-2-23>)

Release note | Published 2026-05-04 | Updated 2026-07-16 | 4 min read

Type-specific notification actions, resource identifiers carried end to end so a click opens the exact agent, schedule, or conversation, and an intermediate macOS Install Now repair. The remaining native failures were fixed in v0.2.29 and v0.2.30.

[Markdown](<https://foxl.ai/en/blog/v0-2-23/index.md>)

## [Foxl v0.2.21: Strands SDK 1.0 and Express 5](<https://foxl.ai/en/blog/v0-2-21>)

Release note | Published 2026-04-30 | Updated 2026-07-16 | 3 min read

Upgraded to Strands SDK 1.0.0 stable, with concurrent tool execution and cancellation hooks, and migrated to Express 5, which forwards async route errors and changes wildcard route syntax.

[Markdown](<https://foxl.ai/en/blog/v0-2-21/index.md>)

## [Foxl v0.2.19: gpt-image-2 on Your ChatGPT Subscription](<https://foxl.ai/en/blog/v0-2-19>)

Release note | Published 2026-04-24 | Updated 2026-07-16 | 4 min read

This release added image generation through ChatGPT OAuth, corrected GPT model routing, and updated the agent SDK. Later notes clarify provider-controlled eligibility, quotas, and model changes.

[Markdown](<https://foxl.ai/en/blog/v0-2-19/index.md>)

## [Foxl v0.2.16: Claude Code OAuth, Reborn as a Compatibility Layer](<https://foxl.ai/en/blog/v0-2-16>)

Deep dive | Published 2026-04-21 | Updated 2026-07-16 | 3 min read

Live probes showed that system-prompt and tool-name shapes changed observed Claude subscription routing. Foxl shipped a compatibility layer, then documented the limits of treating provider behavior as a stable contract.

[Markdown](<https://foxl.ai/en/blog/v0-2-16/index.md>)

## [Foxl v0.2.11: The Feed - Proactive, Quietly](<https://foxl.ai/en/blog/v0-2-11>)

Release note | Published 2026-04-18 | Updated 2026-07-16 | 4 min read

Foxl v0.2.11 added an opt-in For You feed powered by a background agent. When enabled, its default cadence was hourly; most items landed quietly and only urgent ones requested notifications.

[Markdown](<https://foxl.ai/en/blog/v0-2-11/index.md>)

## [Foxl v0.2.13: Pixel Office Redesign, Deep-Linkable Notifications](<https://foxl.ai/en/blog/v0-2-13>)

Release note | Published 2026-04-18 | Updated 2026-07-16 | 5 min read

Pixel Office rebuilt with 2.5D sprites for tall furniture, pet positions saved every three seconds, agent-completion notifications that carry a session ID for deep links, and Claude Code credentials on Windows read from the credentials file instead of a PowerShell module Windows does not install.

[Markdown](<https://foxl.ai/en/blog/v0-2-13/index.md>)

## [Building Desktop OAuth for Outlook and Slack](<https://foxl.ai/en/blog/integrations-outlook-slack>)

Deep dive | Published 2026-04-17 | Updated 2026-07-16 | 8 min read

How Foxl's Outlook and Slack tools sign in: PKCE straight to Microsoft, a Slack code exchange at the relay so the client secret stays off the desktop, fixed-port loopback callbacks, and tools registered only once an account is connected.

[Markdown](<https://foxl.ai/en/blog/integrations-outlook-slack/index.md>)

## [Foxl v0.2.5: Claude Opus 4.7 Day-One Support](<https://foxl.ai/en/blog/v0-2-5>)

Release note | Published 2026-04-16 | Updated 2026-07-16 | 2 min read

At its April 16 launch, Foxl v0.2.5 added Claude Opus 4.7 on Bedrock as the default model and expert-routing target, with adaptive thinking and Opus 4.6 retained for existing selections.

[Markdown](<https://foxl.ai/en/blog/v0-2-5/index.md>)

## [Foxl v0.2.2: New Models, Faster](<https://foxl.ai/en/blog/v0-2-2>)

Release note | Published 2026-04-15 | Updated 2026-07-16 | 3 min read

Non-Claude AI models on Bedrock, a dedicated browser profile that remembers your logins, message editing with attachments, and a one-click system report.

[Markdown](<https://foxl.ai/en/blog/v0-2-2/index.md>)

## [Running an Always-On AI Agent on Real Desktops](<https://foxl.ai/en/blog/desktop-agent-gotchas>)

Deep dive | Published 2026-04-15 | Updated 2026-07-16 | 11 min read

A field guide to how an AI agent fails on a real desktop and not on a server: sleep and wake, shell environments that differ by launch method, proxy and TLS splits between Chromium and Node, per-app OS permissions, packaged paths, shared browser profiles and PTY backpressure, with the evidence to capture for each.

[Markdown](<https://foxl.ai/en/blog/desktop-agent-gotchas/index.md>)

## [Foxl v0.2.0: DB-Backed Agents, Smarter Scheduling](<https://foxl.ai/en/blog/v0-2-0>)

Release note | Published 2026-04-12 | Updated 2026-07-16 | 3 min read

SQLite-backed auto-continuation prevents duplicate agents, cron scheduler gets weekday support, and the sidebar shows real-time agent timers.

[Markdown](<https://foxl.ai/en/blog/v0-2-0/index.md>)

## [Designing a Local-First Trust Boundary for AI Agents](<https://foxl.ai/en/blog/why-local-first>)

Deep dive | Published 2026-03-18 | Updated 2026-07-16 | 12 min read

What local-first means for an AI agent that uses cloud models: Foxl keeps durable conversation state, tool execution and credentials on your machine, sends selected model context through the provider path you configure, and routes remote access through a relay that can read what it carries.

[Markdown](<https://foxl.ai/en/blog/why-local-first/index.md>)

