Content
# Fieldy to OpenClaw
A Windows desktop app (WPF / .NET 8) that connects the [Fieldy 3](https://www.fieldy.ai/) AI wearable to your desktop: offline search across your conversations and transcripts, task/speaker-profile/template/sharable management, and a local [MCP](https://modelcontextprotocol.io/) bridge to plug your Fieldy data straight into OpenClaw or Claude Code.
The Fieldy pendant only ever pairs with the phone (Bluetooth) — this app never talks to the hardware, it connects to your Fieldy **account** via its public cloud API.
## Features
### Core
- **4-step setup wizard**: API key connection, optional local webhook and/or MCP server activation, initial sync with a progress bar.
- **Offline full-text search** (SQLite FTS5) across titles, summaries, content, and keywords — Fieldy's API has no server-side search, everything is indexed locally.
- **Conversations**: list, detail view, export (Markdown / plain text / JSON).
- **Tasks**: status-filtered list, create, change status, delete — with visual highlighting for tasks left untouched for several days ("tasks going stale").
- **Speaker profiles**: full CRUD (name + color). *Fieldy's API has no way to attach a profile to a specific transcript segment — that feature is deliberately absent here.*
- **Memory templates**: full CRUD with a sections sub-editor.
- **Sharables**: create/revoke share links per conversation.
- **Background sync** every 2 minutes + a system tray icon (status, manual sync, quick reopen).
- **Local webhook receiver** (`http://localhost:{port}/webhook/`) for real-time delivery of new conversations pushed by Fieldy.
- **Local MCP server** (`FieldyToOpenClaw.Mcp.exe`) exposing your data to an MCP client (OpenClaw, Claude Code) without a round-trip to the cloud on every call.
### ADHD — working memory and external structure
- **Dropped-commitment detector**: scans conversation content for spoken commitments ("I'll send that over tomorrow") and offers to turn them into a task with one click.
- **Welcome-back bridge**: after a 2h+ absence, a "here's what happened" recap shows up on return.
- **Transition nudges**: a gentle notification on prolonged silence or a detected location change.
- **Stale tasks**: tasks pending for a while visually surface with their age.
### Work — follow-through and recall
- **Follow-up autopilot** (AI): drafts a follow-up email from a conversation's summary/content/quotes.
- **Relationship radar**: a view of contacts sorted by how long since you last talked.
- **Weekly digest** (AI): a recap of the last 7 days (conversations, tasks done/pending).
- **Project clustering**: local grouping of conversations by shared keywords/speakers/location, no manual tagging required.
### Cross-cutting
- **Ask your day** (AI): a natural-language question over your transcripts, answered with citations back to the source conversations (local RAG).
- **Mood journal** (AI): stressful/neutral/positive tagging per conversation, with a browsable history over time.
Features marked **(AI)** require an Anthropic API key configured in **Settings** (stored encrypted via DPAPI, never in code). Without a key they're simply hidden — the rest of the app works normally.
## Architecture
```
FieldyToOpenClaw.sln
src/
FieldyToOpenClaw.Core/ shared library: API client, SQLite+FTS5 cache,
sync, security (API key via DPAPI), export, webhook
FieldyToOpenClaw/ WPF application (wizard, screens, tray icon)
FieldyToOpenClaw.Mcp/ MCP server (standalone console process, stdio)
tests/
FieldyToOpenClaw.Tests/ xUnit tests (rate limiter, cache/FTS5, webhook parsing)
```
The MCP server is a separate process from the WPF app (an MCP client launches it itself over stdio); both share the same SQLite cache file in WAL mode, which allows concurrent reads without contention.
## Requirements
- Windows 10/11
- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- A Fieldy account with the mobile app installed
## Build
```powershell
dotnet build FieldyToOpenClaw.sln
```
## Run the app
```powershell
dotnet run --project src\FieldyToOpenClaw
```
On first launch the wizard walks you through:
1. **API key** — in the Fieldy mobile app: *Settings → Developer Settings → copy the API key* (starts with `sk-fieldy-`).
2. **Integrations** — turn on the local webhook and/or the MCP server as needed.
3. **Initial sync** — pick the lookback window (30 days by default).
## Connecting OpenClaw / Claude Code (MCP)
1. Publish the MCP server as a self-contained executable:
```powershell
dotnet publish src\FieldyToOpenClaw.Mcp -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o dist\mcp
```
2. Copy the contents of `dist\mcp\` to `%LOCALAPPDATA%\FieldyToOpenClaw\mcp\`.
3. In the app, on the wizard's **Integrations** step (or in **Settings**), click **"Copy MCP config"** — the generated JSON snippet points at `FieldyToOpenClaw.Mcp.exe` in that location.
4. Paste the config into your MCP client, e.g. for Claude Code:
```powershell
claude mcp add-json fieldy-to-openclaw '{"command":"C:\\Users\\<you>\\AppData\\Local\\FieldyToOpenClaw\\mcp\\FieldyToOpenClaw.Mcp.exe","args":[]}'
```
Exposed tools: `search_conversations`, `get_conversation`, `list_recent_conversations`, `list_transcripts_in_range`, `list_tasks` — all served from the local cache, no network call per request.
## Tests
```powershell
dotnet test tests\FieldyToOpenClaw.Tests
```
## Known limitations (by design)
- No Bluetooth pairing with the pendant — account connection only.
- No way to assign a speaker profile to a specific transcript segment — Fieldy's public API doesn't expose that as a write operation.
- Fieldy's webhook is thinly documented publicly; payload parsing is deliberately tolerant (never crashes on an unexpected shape, raw payloads are logged to `webhook_log`).
## Backlog
Global quick-search + hotkey, light/dark theme, at-rest cache encryption, a `webhook_log` viewer.