Skip to content

Kush614/FieldMemory

Repository files navigation

FieldMemory

Your best technician's memory, in every technician's ear.

Voice-native field service memory for deskless workers. Built at the ElevenLabs × Sauna Hack Night (July 16, 2026).

ElevenLabs = mouth and ears. Sauna = brain and shared memory. FieldMemory = the voice front door.


Screenshots

Live demo (voice + Team Memory feed)

FieldMemory demo dashboard

Tap the mic, ask about a site, and watch structured visits appear in the Team Memory panel — parts, follow-ups, and access notes.

About page

FieldMemory about page

Sauna × FieldMemory MCP (HQ side)

Sauna retrieving FieldMemory site history

Sauna connected to FieldMemory as a custom MCP connector. Asking for the latest Hillsdale visit pulls live team memory — technician, equipment, prior visits — into the Sauna Space dashboard.


Pitch

Sauna says: stop asking your AI for answers, start asking it for tools.
We say: stop typing into your tools, start talking to them.
FieldMemory is the first voice-native Sauna App — for the 80% of workers who can't use a keyboard on the job.

Problem: Field techs (HVAC, electrical, medical equipment) can't type on rooftops. Job history lives in their heads. Documentation never happens. Repeat truck rolls cost $150–$500 each.

Product:

  1. Recall — arrive at a site, ask by voice, get full history / warranty / access notes
  2. Capture — ramble a messy debrief; parts, follow-ups, and codes write into shared memory
  3. Multiplayer — the next tech (or Sauna at HQ) asks what happened and hears what was just logged

Architecture

Browser (Tech A / Tech B)
   │  ElevenLabs Conversational AI widget
   ▼
ElevenLabs Agent ──webhook tools──► Express relay (tunnel)
                                       │
                          ┌────────────┴────────────┐
                          ▼                         ▼
                     SQLite memory.db         Anthropic Claude
                     sites / equipment        briefing + debrief
                     / visits                 structuring
                          ▲
                          │
              Sauna Space ──MCP──► POST/GET /mcp
Layer Choice
Voice ElevenLabs Conversational AI + web widget
Relay Node + Express
Memory better-sqlite3 (memory.db)
LLM Anthropic claude-sonnet-4-6
Sauna Custom MCP connector (/mcp)
Frontend Static HTML (Gumroad dark theme)

Demo script (5 minutes)

Beat Who Say Prove
1 Recall Tech A “I just pulled up to the Hillsdale Medical HVAC unit.” Spoken briefing: prior visits, warranty, access code
2 Capture Tech A Debrief with FM-2250, line replacement, code 4482 New card appears in Team Memory
3 Multiplayer Tech B or Sauna “What do I need to know for Hillsdale tomorrow?” Answer includes FM-2250 + 4482

Close: That knowledge used to leave in the truck. Now it compounds.


Quick start

npm install
cp .env.example .env   # fill keys (see below)
node seed.js           # 2 sites, 3 visits (Hillsdale roof code starts at 7715)
node server.js         # http://localhost:3000

Environment

Variable Required Purpose
ANTHROPIC_API_KEY Yes (for spoken briefings) Claude synthesis + debrief JSON
ELEVENLABS_API_KEY For agent create/update script Dashboard tool wiring
ELEVENLABS_AGENT_ID For widget Embeds voice agent on /
SAUNA_API_BASE / SAUNA_API_KEY Optional Push write-through (Track A stretch)
PORT No (default 3000) HTTP port

Never commit .env. It is gitignored.

Tunnel + ElevenLabs tools

Expose localhost (ngrok or cloudflared), then point agent tools at it:

node create-agent.js https://<your-tunnel-host>

Creates/updates tools: site_briefing, log_debrief, ask_team_memory.

Sauna MCP

Register a custom MCP connector in Sauna pointing at:

https://<your-tunnel-host>/mcp

Tools exposed:

MCP tool Role
get_site_briefing Site history briefing (read)
search_team_memory Answer from visits only (read)
log_visit Store a debrief (write)

Supports classic SSE (GET /mcp + POST /messages) and Streamable HTTP (POST /mcp).


API

Route Purpose
POST /tools/site-briefing Beat 1 — spoken site briefing
POST /tools/log-debrief Beat 2 — structure + store debrief
POST /tools/ask-team-memory Beat 3 — answer from shared memory
GET /feed Live Team Memory JSON for the UI
GET /config { agentId } for the widget
GET /mcp / POST /messages Sauna MCP (SSE)
POST /mcp Sauna MCP (Streamable HTTP)
GET / Demo UI
GET /about.html About page

All tool endpoints return { "result": "<string for the agent to speak>" }.


Repo layout

├── server.js           # Express routes + static
├── store.js            # All storage (SQLite; optional Sauna write-through)
├── tools.js            # Shared handlers (webhooks + MCP)
├── mcp.js              # MCP SSE + Streamable HTTP
├── claude.js           # Briefing + debrief extraction
├── db.js / seed.js     # Schema + demo seed
├── create-agent.js     # ElevenLabs agent + tools bootstrap
├── public/
│   ├── index.html      # Voice demo + Team Memory feed
│   └── about.html      # Pitch / product page
└── docs/screenshots/   # README images

Commercial wedge

  • Market: deskless workforce; field service management ~$5B+, double-digit growth
  • Buyers: mechanical / HVAC / electrical contractors, 20–200 techs
  • Price: ~$60–100 / tech / month
  • ROI: one avoided repeat truck roll per tech per month
  • Moat: every debrief compounds shared memory — switching cost grows daily
  • Distribution: built as a Sauna surface → connectors + Spaces for free

License

MIT — hackathon build. Ship it, fork it, put it on a rooftop.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages