Skip to content

Releases: sayhi2e10414-cpu/focus-with

FocusWith v0.7.0 — Rewards & Windows Preview

Choose a tag to compare

@github-actions github-actions released this 02 Aug 12:24

FocusWith v0.7.0 — Rewards & Windows Preview

FocusWith now turns uninterrupted focus time into rewards you choose, and the
native floating companion is available as an experimental Windows download.

FocusWith 现在可以把不间断专注时间兑换成自己设定的奖励,同时提供实验性的
Windows 原生悬浮窗下载。

Highlights

  • Added editable rewards with a default example, selectable targets, persistent
    earned inventory, and explicit redemption.
  • Added camera-verified, timer-plus-blocklist, and pure-timer evidence modes with
    automatic fallback when a camera companion is unavailable.
  • Added reward countdowns to the Web UI and the macOS and Windows floating
    companions.
  • Added four scoped reward tools to Local MCP and OAuth-protected Remote MCP.
  • Added an experimental self-contained Windows x64 companion with a floating
    timer, Windows Credential Locker storage, local ONNX phone detection, and
    privacy-minimal distraction reporting.

Windows preview status

  • The Windows app is compiled and tested on GitHub's windows-latest runner.
  • It targets Windows 10 version 2004 (build 19041) or newer on x64.
  • No physical Windows camera has been available to the maintainers yet, so
    camera selection, permission prompts, frame throughput, and real-world
    detection accuracy still need tester feedback.
  • The ZIP is not code-signed, so Windows SmartScreen may warn before first run.
  • Extract FocusWith-Windows-win-x64.zip, then run
    FocusFloat.Windows.exe.
  • The first camera start downloads the pinned YOLOv3 ONNX model (about 236 MB)
    and verifies its SHA-256 checksum.

Privacy and security

  • Camera frames, crops, confidence values, bounding boxes, and embeddings stay
    on the companion device.
  • Reward heartbeats contain only UTC time, client source, and observing/stopped
    state.
  • Sustained-phone events contain only an event ID, duration, timestamp, and
    client source.
  • Image-derived fields are rejected by the server.
  • Camera monitoring is opt-in and visibly marked while active.
  • The Windows token is stored with Windows Credential Locker.

Downloads

  • FocusWith-Android-v0.7.0.apk — signed Android companion.
  • FocusWith-Windows-win-x64.zip — experimental unsigned Windows companion.
  • Verify either download with its adjacent .sha256 file.

Upgrade notes

  • Existing SQLite installations are migrated automatically.
  • Existing web, Android, phone, AI, Telegram, and MCP behavior remains backward
    compatible.
  • Back up the SQLite database or Docker volume before upgrading a production
    deployment.

See docs/REWARDS.md, docs/CAMERA_COMPANION.md,
windows/FocusFloat/README.md, README.md, README.zh-CN.md, and
SECURITY.md before installation or public deployment.

FocusWith v0.6.0

FocusWith v0.6.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Aug 09:55

FocusWith v0.6.0 — Local Camera Companion

FocusWith can now notice when a phone remains in view during a focus session without sending camera frames away from the computer.

FocusWith 现在可以在专注时通过本机摄像头识别画面中的手机,同时不把摄像头画面发送到电脑之外。

Highlights

  • Added an opt-in Camera Companion to the native macOS FocusFloat window.
  • Added local phone detection through Apple Vision and Core ML at about two frames per second.
  • Added temporal smoothing: two positive frames confirm a phone, four misses are tolerated, and a reminder is eligible after ten sustained seconds.
  • Added a 60-second local cooldown plus the existing server-side reminder cooldown and strike policy.
  • Added a visible camera preview, detection state, one-click stop control, and macOS camera permission explanation.
  • Added a platform-neutral, authenticated /api/vision-events/phone endpoint for future Windows and other native companions.

Privacy and security

  • Camera frames, crops, confidence values, bounding boxes, and embeddings stay inside FocusFloat.
  • The server accepts only an event ID, sustained duration, timestamp, and client source. Unknown and image-derived fields are rejected.
  • Event IDs are hashed for idempotency before storage.
  • The Core ML model is downloaded from Apple's model assets during the first build and verified against a pinned SHA-256 checksum. It is not committed to the repository.
  • Camera monitoring starts only after the owner presses Start camera and remains visibly indicated while active.

Upgrade notes

  • Existing SQLite installations are migrated automatically. The migration preserves existing phone-app intervention records while allowing camera-originated interventions.
  • Existing web, phone, Android, AI, Telegram, and MCP behavior remains backward compatible.
  • The included signed Android APK is versioned to 0.6.0 but does not add camera monitoring; Camera Companion is currently implemented on macOS.
  • Windows can use the same server contract, but no Windows executable is included in this release.
  • Back up the SQLite database or Docker volume before upgrading a production deployment.

See docs/CAMERA_COMPANION.md, macos/FocusFloat/README.md, README.md, README.zh-CN.md, and SECURITY.md before installation or public deployment.

FocusWith v0.5.1 — Web, AI, MCP & Android

Choose a tag to compare

@github-actions github-actions released this 19 Jul 04:51

FocusWith v0.5.1 — Web, AI, MCP & Android

FocusWith is a private-by-default, self-hosted focus system. The Android APK is an optional phone companion—not the whole product.

FocusWith 是一套默认私密、可自托管的完整专注系统。Android APK 只是可选的手机伴侣,并不是整个项目。

Choose how you want to use FocusWith

1. Web app and built-in AI companion

Run the FocusWith server to use directions, projects, tasks, timers, daily/weekly statistics, plan import, and the browser-based Companion.

网页端包含方向、项目、任务、专注计时、每日/每周统计、计划导入和 AI 陪伴页面。

The built-in Companion supports:

  • OpenAI Responses API
  • Anthropic / Claude API
  • DeepSeek
  • GLM / Zhipu
  • Ollama and other OpenAI-compatible endpoints

Install from source:

git clone https://github.com/sayhi2e10414-cpu/focus-with.git
cd focus-with
./scripts/install.sh
./scripts/focus start

You can also download Source code (zip) below. Provider keys stay on the FocusWith server in the ignored .env file and are never embedded in browser JavaScript.

2. Local MCP and secure Remote MCP

FocusWith exposes seven scoped tools for starting and completing focus sessions, reading plans, managing tasks, and choosing the next action.

  • Local MCP: Codex, Claude Desktop/Code, and other stdio MCP clients can use scripts/focus-mcp.
  • Remote MCP: Claude.ai and compatible ChatGPT workspaces can connect to the public HTTPS /mcp endpoint through OAuth, DCR, and S256 PKCE.

The AI model lives in the MCP client; it does not depend on the Android app or the built-in Companion provider.

3. Android companion

The optional Android app adds:

  • selected-app usage-event monitoring;
  • screen-off false-positive protection;
  • a persistent timer notification;
  • an optional draggable overlay timer;
  • phone-scoped access that cannot read AI keys, OAuth tokens, or the full Focus API.

Download FocusWith-Android-v0.5.1.apk below. The APK is signed and its .sha256 checksum is included.

4. iPhone, Telegram, and macOS

The same server also includes iPhone Shortcut event endpoints, optional Telegram button messages, and the native macOS floating timer source.

Important notes

  • FocusWith currently targets one owner per deployment.
  • Remote MCP and model providers remain off until explicitly configured.
  • Back up the SQLite database or Docker volume before upgrading.
  • Android may ask users to allow installation from GitHub because the APK is distributed outside Google Play.
  • Users who installed the earlier debug APK must uninstall it once before installing the signed release.

Documentation

v0.5.1 includes all features introduced in v0.3.x and v0.4.x; users do not need to install those versions separately.

FocusWith v0.3.0 — 中文版 / Bilingual UI

Choose a tag to compare

@sayhi2e10414-cpu sayhi2e10414-cpu released this 19 Jul 03:11

FocusWith v0.3.0 — 中文版 / Bilingual UI

FocusWith now has a complete Simplified Chinese interface alongside English. Chinese browsers use it automatically, and every browser can switch languages at any time.

FocusWith 现在拥有完整的简体中文界面,同时保留 English。中文浏览器会自动显示中文,也可以随时手动切换语言。

Highlights

  • Complete Simplified Chinese coverage across focus, projects, statistics, settings, dialogs, and empty/error states.
  • Automatic browser-language detection with a persistent Chinese/English switch.
  • Bilingual OAuth approval and error pages for secure Remote MCP connections.
  • Chinese screenshots and installation guidance in README.zh-CN.md.
  • Regression tests that keep both locale dictionaries in sync and protect interpolation placeholders.

Preview notes

  • FocusWith is still designed for one owner per deployment.
  • Remote MCP is disabled by default. Follow docs/REMOTE_MCP.md; do not expose an unauthenticated write-capable endpoint.
  • Back up the SQLite database or Docker volume before upgrading.
  • Review AI tool calls before allowing them to modify tasks or timer state.

See README.md, README.zh-CN.md, and SECURITY.md before installation or public deployment.

FocusWith v0.2.0 — First public preview

Choose a tag to compare

@sayhi2e10414-cpu sayhi2e10414-cpu released this 18 Jul 15:43

FocusWith v0.2.0 — First public preview

FocusWith is a private-by-default, self-hosted focus system for turning goals into projects, tasks, and focused sessions. This is the first public preview of the project.

Highlights

  • Organize long-term directions, concrete projects, and actionable tasks.
  • Import duration-aware Markdown plans generated in an AI chat.
  • Run Pomodoro, deep-focus, free-focus, or count-up sessions with custom durations.
  • Carry unfinished work forward and merge repeated sessions for the same task in daily/weekly statistics.
  • Configure contextual distraction reminders from iPhone Shortcut events.
  • Use the app without AI, add an optional provider, or connect a local MCP client through seven constrained tools.
  • Connect Claude.ai through an OAuth-protected Streamable HTTP MCP server with DCR, S256 PKCE, audience validation, token rotation, and revocation.
  • Deploy locally, with Docker Compose, or to a clean HTTPS VPS using the included Caddy workflow.
  • Install the native macOS floating timer with Command Line Tools; full Xcode is not required.

Preview notes

  • FocusWith is currently designed for one owner per deployment.
  • Remote MCP is disabled by default. Follow docs/REMOTE_MCP.md; do not expose an unauthenticated write-capable endpoint.
  • Back up the SQLite database or Docker volume before upgrading.
  • Review AI tool calls before allowing them to modify tasks or timer state.

See README.md, README.zh-CN.md, and SECURITY.md before installation or public deployment.