mcp server
index-one-landing-page
Free, local-first meeting notes for macOS. IndexOne records your calls, transcribes them on-device with Whisper, writes structured Markdown notes into your Obsidian vault and answers questions across
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 21, 2026IndexOne
Local-first meeting notes for macOS, with Ivy. IndexOne records your calls, transcribes them on your Mac, writes a structured note you own as plain Markdown, and lets you ask Ivy questions — during the meeting and across everything you have ever recorded.
Download for macOS · index-one.io · Documentation · Release notes · Support
macOS 13.4+ · Apple Silicon and Intel (universal) · signed and notarized · free during early access
Contents
- This repository
- What IndexOne does
- Install
- Privacy in one table
- Obsidian, MCP and your own agent
- Where your data lives
- Uninstall
- Working on the website
- Support
- Authors and license
This repository
IndexOne's public home. The app's source code is not public and is not here.
| Path | What it is |
|---|---|
| Releases | The signed, notarized DMG of every release, with its notes |
release-notes/ | The same release notes, as Markdown |
app/, i18n/, public/, server/ | The website at index-one.io — Nuxt, statically generated |
docs/use-with-your-agent.md | Using IndexOne with your own AI agent |
vault-skills/ | The skill pack for Claude Code |
| Issues and Discussions | Bug reports, ideas and questions |
What IndexOne does
- Record — press Record (or
⌘⇧Rfrom any app). Your microphone and the other side's audio are captured as two streams. - Transcribe — both streams are transcribed on your Mac with Whisper and merged into one Me / Others transcript. There is no cloud transcription.
- Write the note — when you stop, the AI you chose writes a summary, decisions, action items and quotes. Each grounded line links back to the second of audio it came from.
- Ask Ivy — mid-meeting without stopping the recording, or months later across every meeting, note and document. Every answer lists its sources.
Also included: Workspaces (one tree for recordings, notes, tasks and boards), composable dashboards, offline imports from Notion, Obsidian and Apple Notes, a Markdown editor with Ivy actions, documents (PDF, Office, web pages, images) indexed next to your meetings, and optional end-to-end encrypted sharing through Shared Ivy.
Where Ivy runs is your choice:
| Connection | Where it runs | Does meeting text leave your Mac? |
|---|---|---|
| On-device Ivy (Qwen3 or Bielik, downloaded once) | Your Mac | No |
| Ollama at a local address | Your Mac | No |
| Claude Code (default note writer), Codex | Local CLI → provider | Only after consent; redacted first |
| Anthropic API (your key, in the Keychain), Kong or another OpenAI-compatible gateway | Direct HTTPS | Only after consent; redacted first |
The full feature list is on index-one.io and in the documentation.
Install
- Download
IndexOne-<version>.dmgfrom the latest release. - Open the DMG and drag IndexOne into Applications.
- Open it from Applications and confirm Open when macOS asks.
Every release is signed with an Apple Developer ID and notarized, with the ticket stapled to the DMG. If macOS says the app "cannot be opened" or "is damaged", don't work around it: delete the file, download it again, and open an issue if it happens again.
spctl -a -vvv -t open --context context:primary-signature ~/Downloads/IndexOne-<version>.dmg
xcrun stapler validate ~/Downloads/IndexOne-<version>.dmg
codesign -dv --verbose=2 "/Applications/IndexOne.app" 2>&1 | grep -E "Authority|TeamIdentifier"
Expect accepted and source=Notarized Developer ID; the TeamIdentifier should read BVF778E5QD.
Each release also carries SHA256SUMS.txt — run shasum -a 256 -c SHA256SUMS.txt in the download
folder.
Permissions. macOS asks for each one the first time it is needed: Microphone and Screen & System Audio Recording (first recording — audio only, never your screen), Calendars, Reminders, Automation → Notes (Apple Notes import) and Touch ID (unlocking a locked folder). Details: Your first recording.
Updates. At launch the app asks GitHub whether a newer release exists; the request carries only the app version. Turn it off in Settings → Privacy & Integrations. The app never installs anything by itself — download the new DMG and replace the old copy; your library stays put. Versions 2.8.0 and earlier can no longer reach the update check: download the latest release once.
Privacy in one table
Recording, transcription, search and on-device Ivy work with no network connection.
| What can leave your Mac | When | Where it goes |
|---|---|---|
| Update check — the app version, no content, no account | At launch (can be turned off) | api.github.com |
| Model downloads — nothing about you | Only when you start one | Hugging Face |
| Redacted meeting text | Only with a cloud AI connection and one-time consent | The provider you chose |
| Redacted connector queries | Only for connectors you enabled | That service |
| Encrypted notes, summaries and tasks | Only when you share, with an account | The sharing relay (ciphertext only) |
The database is encrypted with SQLCipher. Any Workspace or folder can also be locked with AES-256-GCM under a key only Touch ID or your login password releases; a locked folder is invisible to the app, search, the graph, MCP and the audio player until unlocked. More: What never leaves your Mac · The lock model · Redaction firewall · Known limitations
Obsidian, MCP and your own agent
-
Obsidian — pick a vault folder and every note is written there as plain Markdown with YAML front-matter,
[[wikilinks]],obsidian://block references and an optional.canvasboard. -
MCP — a read-only Model Context Protocol server on
127.0.0.1:8765, loopback-only and protected by a bearer token. Copy the real config, token included, from Settings → Privacy & Integrations → Local server for Claude → Copy config:{ "mcpServers": { "index-one": { "type": "http", "url": "http://127.0.0.1:8765", "headers": { "Authorization": "Bearer <your-token>" } } } } -
Your own agent — read Use IndexOne with your own AI agent and install the skill pack.
Where your data lives
| What | Where |
|---|---|
| Library, recordings, models, logs | ~/Library/Application Support/MeetNotes/ |
| Encryption and API keys | macOS Keychain, items named com.meetnotes.app |
| Exported notes | The vault folder you chose |
The folder keeps the app's original internal name. Don't rename it, or the app starts with an empty library.
Uninstall
- Quit IndexOne and move
/Applications/IndexOne.appto the Trash. Your library stays. - To remove your data too, delete
~/Library/Application Support/MeetNotes/— this permanently deletes every recording, transcript and note, locked folders included — then delete thecom.meetnotes.appitems in Keychain Access. - Optional:
tccutil reset All com.meetnotes.appclears the macOS permissions.
A sharing account is not deleted by uninstalling; see SUPPORT.md.
Working on the website
The website is a Nuxt 4 app in TypeScript with Nuxt UI,
Nuxt i18n and SCSS, generated to static HTML so every word is in the
served markup. It is published in English (/), Polish (/pl/), Spanish (/es/), Italian
(/it/), French (/fr/), Portuguese (/pt/), German (/de/), Simplified Chinese (/zh/) and
Japanese (/ja/); the first visit follows the
browser's language and the choice is kept in a first-party cookie. The colour mode follows the
system until the visitor picks one.
npm ci
npm run dev # http://localhost:3000
npm run generate # static output in .output/public
npm run typecheck
| Path | What it holds |
|---|---|
i18n/content/ | All page copy, one typed file per language (en.ts is the source; types.ts keeps the others complete) |
app/data/ | What doesn't get translated: links, icons, screenshots, the comparison's yes/no values |
app/components/ | One component per section |
app/assets/scss/ | Fonts, the Studio / Paper / Minimalist skins and base styles |
app/composables/usePageSeo.ts | Meta tags, Open Graph and JSON-LD; hreflang and canonical come from Nuxt i18n |
server/routes/sitemap.xml.ts | The sitemap, with every language as an alternate |
public/ | Static files served as they are: docs.html (English only), screenshots, fonts, icons, robots.txt, CNAME |
The site makes no third-party requests: fonts and icons are bundled, and there is no analytics.
CI (site-check.yml) builds the site and refuses external
assets, data: URIs and missing SEO tags; pages.yml deploys main
to GitHub Pages. npm install also wires git hooks that check branch names and commit messages
(Conventional Commits, no AI attribution).
Runbooks for people and coding agents are in AGENTS.md and .agents/skills/.
Read CONTRIBUTING.md before opening a pull request.
Support
- Docs first: index-one.io/docs.html.
- Bug: open a bug report with your app version (Settings → About), macOS version and Mac type.
- Idea: suggest a feature.
- Question: Discussions.
- Security issue: don't open a public issue — use private vulnerability reporting. See SECURITY.md.
Issues and Discussions are public. Never paste transcripts, notes, meeting titles, attendee names, audio, API keys or your MCP token, and don't attach the diagnostics bundle — it can contain file paths that include your macOS user name. More in SUPPORT.md.
Authors and license
IndexOne is made by MonoOne (GitHub). See AUTHORS.md and CITATION.cff.
- Documentation, release notes and website text: CC BY 4.0 — credit "MonoOne" and link to this repository.
- The app, the IndexOne name and logo, the screenshots and the promo video are © 2026 MonoOne, all rights reserved. The app is free to download and use.
- Fonts in
public/assets/fonts/are under the SIL Open Font License 1.1; each family's licence sits next to it. - Versions 2.8.0 and earlier were originally published under the GNU AGPL-3.0 while their source code was public; their release notes say so.
This section describes the licensing; it is not legal advice.