Publication note: identifying paths, addresses and labels have been replaced with illustrative examples. Historical validation statements do not describe a fresh run or your device.
A local-first personal assistant workspace by Lewis Joseph Feik / AmericanSites. Jarvis combines a browser dashboard, personal planning tools, optional local voice, and bounded integrations in one Node.js application.
| Area | Implementation |
|---|---|
| Personal workspace | Calendar, reminders, checklists, school records, website work, software projects, and saved notes |
| Conversation and voice | Typed conversation; optional local Ollama, Whisper, and speech; optional macOS and Android companions |
| Multiple displays | Paired dashboards, TV view, responsive layouts, and fixed voice navigation actions |
| Source-aware assistance | Saved-record page summaries and web research with links |
| Local operations | Host telemetry and separately labeled device-activity observations |
| Optional connections | ChatGPT, GitHub/Netlify status, reminder email, and a separate read-only Robinhood Crypto panel |
The optional integrations require their own setup and permissions. This repository contains no accounts, credentials, saved conversations, school records, financial records, recordings, or live network observations.
Requirements: Node.js 22 or newer and a browser. The core dashboard and planning tools require no AI account or API key.
npm ci
npm startOpen http://localhost:3210. Keep the terminal open; stop it with Control-C. Use PORT=3211 npm start if the default port is occupied. Fresh installations create their own local state; the developer's configured state is excluded.
Optional voice components, native companions, email delivery, HTTPS pairing and provider connections are separate setup tasks. Start with the relevant guide below.
Email is off by default, with no recipient. Before connecting a Gmail sender, set JARVIS_REMINDER_RECIPIENT to your own Gmail address in the server process environment and restart. Then use the local setup form. The notification master switch also starts paused and requires an explicit recipient before enabling. Email setup explains the steps; credentials remain outside the repository.
Private application state belongs in the configured data directory. Read the startup output and API guide before managing an existing installation. Keep data/, runtime/, generated keys, local models, app builds and private exports out of Git. The supplied .gitignore excludes these locations.
Use a trusted local network for paired displays. Do not forward the dashboard to the public Internet. Connections do not grant the assistant arbitrary file or application access. Connection privacy explains the provider boundary.
- API and storage behavior
- Voice setup, macOS companion, Android companion
- Voice commands, page reading, web assistance
- Calendar, reminders, checklists, school workspace
- Software catalog, website work, client search
- Stocks tracker, optional read-only crypto connection
- Network console scope, device companion, room guard
- Historical validation notes
The default code changes when the backend restarts. To use your own persistent code, stop the backend, create pairing-code.txt in the active data directory, and restrict that file to the current user (mode 600). Use 4-100 ASCII letters, numbers, hyphens or underscores, then restart. Never commit or share the file. See session rules and validation for the precise file requirements. No workstation code is included here.
Optional local conversation uses an independently installed Ollama service and model. Voice also needs the local speech components described in the voice guide. These components are excluded from Git and are not installed by npm ci. Provider connections are optional alternatives with their own account and privacy requirements.
npm run check
npm testTests do not prove physical microphone/speaker behavior, mobile-device behavior, third-party account access or fresh network visibility. Historical workstation observations are dated evidence, not guarantees for another machine.
This is an actively developed personal project, published as a sanitized source snapshot. Experimental integrations sit alongside established dashboard features. The Don Aurelio persona and Jarvis branding are interface choices; they do not imply access to services or devices without setup.
No open-source license has been selected for this snapshot. Dependency licenses remain with their respective authors.