The tests in
apps/cli/src/cli.rs and apps/cli/src/mcp/tests.rs compare the CLI and MCP server contract against docs/reference/cli.mdx, docs/reference/mcp.mdx and skills/syntheo/references/. Changing this contract without updating the documentation makes CI fail.The interactive reproductions of the app (
docs/snippets/*.gen.jsx, generated by scripts/sync-docs-ui.mjs from scripts/docs-ui/*.jsx.tpl) use the colors from packages/design-system/src/tokens.css, the labels from apps/desktop/src/i18n/locales/fr/messages.po and the icons from packages/ui/src/components/icons-*.tsx. A change of color, label or icon is picked up by running the script again; a removed label makes apps/desktop/src/docs-ui.test.ts fail. When the structure of a screen changes, update the template listed in Interactive reproductions.Getting started
| Page | Sources |
|---|---|
| Syntheo | Editorial content, with no source in the code. |
| Install the app | apps/desktop/src-tauri/src/lib.rs |
| Uninstall Syntheo | plugins/store2crates/storagecrates/brand |
| Set up transcription and AI | packages/provider-validationpackages/storecrates/owhisper-clientcrates/owhisper-interfacecrates/openai-transcriptioncrates/ws-clientplugins/transcriptionplugins/store2apps/desktop/src/aiapps/desktop/src/onboardingapps/desktop/src/settings/ai/sttapps/desktop/src/settings/ai/llm |
| Your first meeting | plugins/permissionsapps/desktop/src/homeapps/desktop/src/onboarding |
| The Syntheo philosophy | Editorial content, with no source in the code. |
Using Syntheo
| Page | Sources |
|---|---|
| Record a meeting | packages/editorpackages/utilspackages/utils/src/summary-eligibility.tscrates/audiocrates/audio-actualcrates/audio-devicecrates/device-monitorcrates/audio-synccrates/aeccrates/vad-maskingcrates/listener-corecrates/transcription-corecrates/supervisorcrates/owhisper-clientcrates/owhisper-interfacecrates/transcriptplugins/transcriptionplugins/windowsplugins/dbplugins/sessioncrates/db-app (session_ops, session_lifecycle_ops, session_content_ops, session_move_ops, session_participant_ops)crates/db-app (session_transcript_ops, transcript_batch_ops, transcript_live_ops)crates/fs-sync-coreapps/desktop/src/sttapps/desktop/src/store/zustand/listenerapps/desktop/src/store/zustand/ai-taskapps/desktop/src/services/enhancerapps/desktop/src/sessionapps/desktop/src/meeting-floatapps/desktop/src/settings/generalapps/desktop/src/session/components/capsule/channel-toggles.tsxapps/desktop/src/store/zustand/listener/muted-channels.tsapps/desktop/src/settings/general/audio-settings.tsxapps/desktop/src/settings/general/speaker-device.tsapps/desktop/src/stt/system-audio-change-notice.tsxcrates/audio-device/src/speaker_output.rsplugins/windows/src/window/layer_shell.rs |
| Dictate in other apps | crates/audiocrates/owhisper-clientplugins/dictationplugins/shortcutapps/desktop/src/dictationapps/desktop/src/settings/dictation.tsxapps/desktop/src/settings/dictionary |
| Automate capture | crates/listener-corecrates/detectplugins/detectplugins/notificationplugins/windowscrates/notificationcrates/notification-interfacecrates/notification-linuxcrates/notification-windowsapps/desktop/src/sttapps/desktop/src/meeting-floatapps/desktop/src/settings/general |
| Import a recording | crates/audio-utilscrates/mp3crates/listener2-corecrates/transcription-corecrates/owhisper-clientcrates/owhisper-interfaceplugins/transcriptionplugins/fs-synccrates/db-app (session_transcript_ops, transcript_batch_ops, transcript_live_ops)crates/fs-sync-coreapps/cli/src/commands/recording_import.rscrates/agent-access/src/recording_import.rsapps/desktop/src/sttapps/desktop/src/stt/transcription-route.tsapps/desktop/src/stt/batch-eta.tscrates/listener-core/src/actors/file_stream |
| Notes, summaries and transcripts | packages/editorpackages/utilspackages/utils/src/folders.tscrates/transcriptplugins/dbplugins/sessionplugins/fs-syncplugins/tantivyplugins/exportcrates/db-app (session_ops, session_lifecycle_ops, session_content_ops, session_move_ops, session_participant_ops)crates/db-app/src/session_review_ops.rscrates/db-app/src/summary_ops.rscrates/db-app (folder_catalog_ops, attachment_ops)crates/fs-sync-corecrates/export-corecrates/template-appcrates/summarycrates/agent-access/src/export_markdown.rsapps/desktop/src-tauri/src/search_index.rsapps/desktop/src/sessionapps/desktop/src/foldersapps/desktop/src/homeapps/desktop/src/search |
| Folders and projects | apps/desktop/src/foldersapps/desktop/src/folders/projectapps/desktop/src/folders/suggestionapps/desktop/src/session/components/folder-picker.tsxapps/desktop/src/session/components/living-document/fiche-folder.tsxapps/desktop/src/session/late-filing.tsapps/desktop/src/homeapps/desktop/src/search/unifiedapps/desktop/src/shared/open-note-dialog.tsxapps/desktop/src/shared/palette-search-groups.tsxapps/desktop/src/templates/resolution.tscrates/db-app (folder_catalog_ops, attachment_ops) |
| Customize summaries | packages/storeplugins/templatecrates/db-app/src/summary_ops.rscrates/db-app (template_ops, template_types)crates/template-appcrates/template-app/assetscrates/summaryapps/desktop/src/templates/auto-form.tsxapps/desktop/src/templates/resolution.tsapps/desktop/src/folders/folder-template.tsapps/desktop/src/store/zustand/ai-taskapps/desktop/src/services/enhancerapps/desktop/src/templates |
| Chat with your meetings | packages/editorpackages/storeplugins/sessionplugins/templatecrates/template-appcrates/template-app/assetsapps/desktop/src/chatapps/desktop/src/composerapps/desktop/src/chat/ask-folder.tsapps/desktop/src/shared/palette-search-groups.tsx |
| Contacts | crates/transcriptplugins/contactscrates/db-app (session_ops, session_lifecycle_ops, session_content_ops, session_move_ops, session_participant_ops)crates/db-app/src/contact_ops.rsapps/desktop/src/contacts |
| Automations | plugins/local-apiapps/desktop/src/automationsapps/desktop/src/settings/automationsplugins/local-api/src/automation_command.rsapps/desktop/src/session/components/capsule/automation-menu.tsxapps/desktop/src/session/components/outer-header/overflowapps/desktop/src/chat/components/body/empty.tsx |
| Use multiple languages | crates/listener2-corecrates/languageplugins/transcriptionplugins/templatecrates/template-appcrates/template-app/assetscrates/askama-utilsapps/desktop/src/sttapps/desktop/src/i18napps/desktop/src/settings/generalapps/desktop/src/settings/dictionary |
Privacy and security
| Page | Sources |
|---|---|
| Data and privacy | packages/dbcrates/audio-actualcrates/listener-coreplugins/transcriptionplugins/dbplugins/fs-syncplugins/settingsplugins/store2plugins/tracingcrates/db-corecrates/db-app/src/managed_settings.rscrates/db-app (session_audio_ops, capture_lifecycle_ops, session_hold, session_purge)crates/storagecrates/brandapps/desktop/src-tauri/src/db.rsapps/desktop/src/services/audio-retention.tsapps/desktop/src/lockapps/desktop/src/settings/privacy |
| Use Syntheo offline | packages/provider-validationcrates/listener-corecrates/owhisper-clientplugins/transcriptionapps/desktop/src/aiapps/desktop/src/settings/ai/sttapps/desktop/src/settings/ai/llm |
| Security | packages/provider-validationplugins/store2crates/db-app/src/managed_settings.rsapps/desktop/src/lockapps/desktop/src/settings/privacy |
| Syntheo Desktop and the GDPR | crates/owhisper-clientapps/desktop/src/services/audio-retention.tsapps/desktop/src/docs-rgpd.test.ts |
CLI and agents
| Page | Sources |
|---|---|
| Install the CLI | skills/syntheoagent-plugins/syntheocrates/xtaskapps/cli/src/db.rsapps/cli/src/commands/doctor.rsapps/desktop/src-tauri/src/embedded_cli.rsapps/desktop/src/settings/developers/cli.tsx |
| Agents overview | skills/syntheoagent-plugins/syntheoapps/cli/src/commands/proposals.rscrates/agent-access/src/proposals.rsapps/desktop/src-tauri/src/agents-content.mdapps/desktop/src/session |
| CLI for agents | skills/syntheocrates/db-corecrates/db-app/src/session_review_ops.rscrates/tiptapapps/cli/src/db.rsapps/cli/src/cli.rsapps/cli/src/commands/meetings.rscrates/agent-access/src/lib.rsapps/desktop/src-tauri/src/embedded_cli.rs |
| MCP for agents | skills/syntheoagent-plugins/syntheocrates/db-app/src/session_review_ops.rscrates/tiptapapps/cli/src/mcp/crates/agent-access/src/lib.rs |
| Syntheo skill | skills/syntheoagent-plugins/syntheodocs/skill.mdscripts/publish-syntheo-skill.mjsapps/desktop/src-tauri/src/agent_skills.rsapps/desktop/src/settings/developers/skills.tsx |
Recipes
| Page | Sources |
|---|---|
| Prepare a recurring meeting | Editorial content, with no source in the code. |
Reference
| Page | Sources |
|---|---|
| CLI reference | skills/syntheocrates/transcriptcrates/tiptapapps/cli/src/cli.rsapps/cli/src/output.rsapps/cli/src/commands/recording_import.rsapps/cli/src/commands/proposals.rsapps/cli/src/commands/meetings.rsapps/cli/src/commands/doctor.rscrates/agent-access/src/lib.rscrates/agent-access/src/export_markdown.rscrates/cli-docs |
| MCP reference | skills/syntheocrates/transcriptapps/cli/src/mcp/crates/agent-access/src/lib.rscrates/agent-access/src/recording_import.rscrates/agent-access/src/proposals.rs |
| Webhooks reference | plugins/local-apicrates/db-app (webhook_ops, webhook_types)apps/desktop/src/settings/developers/webhooks.tsx |
| Errors and exit codes | skills/syntheoapps/cli/src/error.rs |
Project
| Page | Sources |
|---|---|
| Architecture | packages/dbcrates/listener-corecrates/owhisper-clientplugins/tantivy |
| Roadmap | Editorial content, with no source in the code. |
Help
| Page | Sources |
|---|---|
| Frequently asked questions | Editorial content, with no source in the code. |
| Troubleshooting | crates/audio-actualcrates/audio-devicecrates/device-monitorcrates/listener-corecrates/owhisper-clientcrates/ws-clientplugins/transcriptionplugins/permissionsplugins/tracingapps/cli/src/db.rsapps/cli/src/commands/doctor.rsapps/desktop/src-tauri/src/lib.rsapps/desktop/src-tauri/src/startup.rsapps/desktop/src-tauri/src/db.rsapps/desktop/src/sttapps/desktop/src/settings/ai/stt |
Interactive reproductions
Each component indocs/snippets/*.gen.jsx reproduces a screen of the app. When the structure of one of these sources changes (order, sections, states), update the matching template in scripts/docs-ui/, then run node scripts/sync-docs-ui.mjs.
| Component | Pages | Template | Reproduced sources |
|---|---|---|---|
<AppSettings> (menu) | Record a meeting, Set up transcription and AI, Use multiple languages, Dictate in other apps, Automate capture, Data and privacy, Troubleshooting | settings.jsx.tpl | apps/desktop/src/sidebar/settings-nav-groups.tsapps/desktop/src/sidebar/settings.tsxapps/desktop/src/sidebar/settings-server-status.tsx |
<AppSettings section="meetings"> | Record a meeting, Automate capture, Troubleshooting | settings-meetings.jsx.tpl | apps/desktop/src/settings/general/index.tsxapps/desktop/src/settings/general/meeting-settings.tsxapps/desktop/src/settings/general/audio-settings.tsx |
<AppSettings section="transcription">, section="intelligence" | Set up transcription and AI, Troubleshooting | settings-servers.jsx.tpl | apps/desktop/src/settings/ai/sttapps/desktop/src/settings/ai/llmapps/desktop/src/settings/ai/sharedpackages/provider-validation/src/index.ts |
<AppSettings section="app"> | Use multiple languages | settings-profile.jsx.tpl | apps/desktop/src/settings/general/index.tsxapps/desktop/src/settings/general/account-profile.tsxapps/desktop/src/settings/general/app-settings.tsxapps/desktop/src/settings/general/main-language.tsxapps/desktop/src/settings/general/spoken-languages.tsxapps/desktop/src/settings/general/single-language-model-hint.tsxapps/desktop/src/settings/general/timezone.tsxapps/desktop/src/settings/general/storage |
<AppSettings section="dictation"> | Dictate in other apps | settings-dictation.jsx.tpl | apps/desktop/src/settings/dictation.tsxapps/desktop/src/settings/dictation-shortcut.tsxapps/desktop/src/dictation/state.ts |
<AppSettings section="privacy">, section="permissions" | Data and privacy, Troubleshooting | settings-privacy.jsx.tpl | apps/desktop/src/settings/privacy/index.tsxapps/desktop/src/settings/general/permissions.tsx |
<AppPalette> | Your first meeting, Notes, summaries and transcripts, Folders and projects | palette.jsx.tpl | apps/desktop/src/shared/open-note-dialog.tsxapps/desktop/src/shared/palette-search-groups.tsxapps/desktop/src/search/unified/labels.ts |
<AppScreen>, <Capsule> and shared capsule | Record a meeting | meeting.jsx.tpl, note.jsx.tpl | apps/desktop/src/session/components/capsule/index.tsx |
<AppHome> | Your first meeting | quickstart.jsx.tpl | apps/desktop/src/home |
<DictationScreen> | Dictate in other apps | dictation.jsx.tpl | apps/desktop/src/meeting-float/overlay/bar.tsxapps/desktop/src/meeting-float/overlay/dictation.tsxapps/desktop/src/dictation/panel.ts |
<AutoCaptureScreen> | Automate capture | automatic-capture.jsx.tpl | apps/desktop/src/stt/detect-events.tsapps/desktop/src/stt/meeting-apps.tscrates/notification-linux/src/impl.rsapps/desktop/src/meeting-float/overlay/bar.tsx |
<ImportScreen> | Import a recording | import.jsx.tpl | apps/desktop/src/session/components/outer-headerapps/desktop/src/session/components/capsule/import-progress.tsxapps/desktop/src/session/components/capsule/session-import-progress.tsxapps/desktop/src/stt/batch-eta.ts |
<NoteActions> | Notes, summaries and transcripts | notes.jsx.tpl | apps/desktop/src/session/components/outer-header/overflowapps/desktop/src/session/components/living-documentapps/desktop/src/session/components/capsule/automation-menu.tsx |
<FolderPage> | Folders and projects | folders.jsx.tpl | apps/desktop/src/foldersapps/desktop/src/sidebar/folders.tsxapps/desktop/src/session/folder-instructions.tsx |
<TemplatesEditor> | Customize summaries | templates.jsx.tpl | apps/desktop/src/templates |
<ContactsScreen> | Contacts | contacts.jsx.tpl | apps/desktop/src/sidebar/contacts.tsxapps/desktop/src/contacts |
<AskNote> | Chat with your meetings | chat.jsx.tpl | apps/desktop/src/chat/componentsapps/desktop/src/editor-bridge/mention-config.tsapps/desktop/src/session/components/living-document/summary-review.tsxapps/desktop/src/automations/launch.tsx |
<AutomationEditor> | Automations | automations.jsx.tpl | apps/desktop/src/sidebar/automations.tsxapps/desktop/src/settings/automationsapps/desktop/src/automations |
<Troubleshooter>, <DataFlows> | Troubleshooting, Data and privacy | troubleshooting.jsx.tpl | apps/desktop/src/stt/live-transcript-interrupted.ts; the rest reuses the screens above. <DataFlows> is a documentation illustration, not an app screen. |