{"id":29881476,"url":"https://github.com/owengretzinger/meetingnotes","last_synced_at":"2025-08-20T05:06:00.021Z","repository":{"id":304048473,"uuid":"1017555455","full_name":"owengretzinger/meetingnotes","owner":"owengretzinger","description":"The Free, Open-Source AI Notetaker for Busy Engineers","archived":false,"fork":false,"pushed_at":"2025-07-29T18:36:24.000Z","size":99662,"stargazers_count":37,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-31T12:39:44.744Z","etag":null,"topics":["macos","meeting","openai","swift","swiftui"],"latest_commit_sha":null,"homepage":"https://meetingnotes.owengretzinger.com","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/owengretzinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-10T18:02:53.000Z","updated_at":"2025-07-30T19:53:03.000Z","dependencies_parsed_at":"2025-07-12T05:29:35.959Z","dependency_job_id":null,"html_url":"https://github.com/owengretzinger/meetingnotes","commit_stats":null,"previous_names":["owengretzinger/notetaker","owengretzinger/meetingnotes"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/owengretzinger/meetingnotes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengretzinger%2Fmeetingnotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengretzinger%2Fmeetingnotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengretzinger%2Fmeetingnotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengretzinger%2Fmeetingnotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/owengretzinger","download_url":"https://codeload.github.com/owengretzinger/meetingnotes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owengretzinger%2Fmeetingnotes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271268854,"owners_count":24730024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["macos","meeting","openai","swift","swiftui"],"created_at":"2025-07-31T11:01:52.353Z","updated_at":"2025-08-20T05:05:59.930Z","avatar_url":"https://github.com/owengretzinger.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003c!-- REMOVE THIS IF YOU DON'T HAVE A LOGO --\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/309577e8-94db-431f-b8df-a53a763b4c87\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n\n\u003ch3 align=\"center\"\u003eMeetingnotes\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    The Free, Open-Source AI Notetaker for Busy Engineers\n    \u003cbr /\u003e\n     \u003ca href=\"https://github.com/owengretzinger/meetingnotes/releases/latest/download/Meetingnotes.dmg\"\u003eDownload for MacOS 14+\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- REMOVE THIS IF YOU DON'T HAVE A DEMO --\u003e\n\u003c!-- TIP: You can alternatively directly upload a video up to 100MB by dropping it in while editing the README on GitHub. This displays a video player directly on GitHub instead of making it so that you have to click an image/link --\u003e\nhttps://github.com/user-attachments/assets/cadd4504-e9d9-4ccd-874d-41d8a84f4c9d\n\n\u003c!--\n## Table of Contents\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## About The Project\n\nBrief description of the project.\n\n### Key Features\n\n- **Feature 1:** ...\n- **Feature 2:** ...\n- ...\n\n## Architecture\n\n![Architecture Diagram](https://github.com/user-attachments/assets/75adc7aa-7719-4c4f-a9bb-3ba847e12e9f)\n\n(Insert the different technologies used in the project here — could split this into frontend, backend, etc)\n\n(Don't explain what well-known technologies like React are)\n\n## Getting Started\n\n### Prerequisites\n\n- Requirement 1\n- Requirement 2\n  ```sh\n  installation command (if applicable)\n  ```\n\n### Installation\n\nInstructions for cloning the repo, installing packages, configuring environment variables, etc:\n\n1. Step 1\n   ```sh\n   command\n   ```\n2. Step 2\n   ```sh\n   command\n   ```\n3. ...\n\n## Acknowledgments\n\n- This README was created using [gitreadme.dev](https://gitreadme.dev) — an AI tool that looks at your entire codebase to instantly generate high-quality README files.\n- (Only include unique things that you are sure should be specifically acknowledged. Don't include libraries or tools like React, Next.js, etc. Don't include services like Vercel, OpenAI, Google Cloud, JetBrains, etc. Stay on the safe side since more can be added later. Do not hallucinate.)\n\n--\u003e\n\n## Features\n\nImplemented:\n\n- Recording mic \u0026 system audio\n- Live transcript\n- Ability to also write down additional notes\n- AI generated enhanced notes\n- Copy functionality\n- Meeting deletion functionality\n- Meeting search functionality\n- Abilty to edit system prompt\n- Use your own API key\n- Auto updates\n- Text formatting\n- Different note templates\n- Integrate with Posthog for anonymous analytics (installs, opens, meetings created)\n- Onboarding screen to enable settings and set API key\n\nTodo:\n\n- check for funds / validity of openai api key\n- add padding to text inputs\n- add confirmation when clicking the copy button\n\nLater:\n\n- Cool recording indicator (dancing bars)\n- Connecting to your Google calendar\n- AI chat for asking questions about a meeting\n- Ability to use different models\n- Ability to use different STT providers\n- Integrations for email, Slack, Notion, etc.\n\n## Local Development\n\nOpen the project in Xcode. Command+R to build it and run it.\n\n## Releasing a New Version\n\nFollow these steps to create a new release with auto-updates:\n\n### Prerequisites\n\n- Homebrew packages: `brew install create-dmg sparkle`\n- Make scripts executable: `chmod +x scripts/update_version.sh scripts/build_release.sh`\n\n### Release Process\n\n1. **Update the version number:**\n\n   ```bash\n   # For bug fixes (1.0 → 1.0.1):\n   ./scripts/update_version.sh patch\n\n   # For new features (1.0 → 1.1):\n   ./scripts/update_version.sh minor\n\n   # For major changes (1.0 → 2.0):\n   ./scripts/update_version.sh major\n\n   # For custom version:\n   ./scripts/update_version.sh custom 1.2.0\n   ```\n\n2. **Build the release:**\n\n   ```bash\n   ./scripts/build_release.sh\n   ```\n\n   This will:\n\n   - Clean build the app in Release mode\n   - Create a signed DMG file\n   - Generate the appcast.xml for auto-updates\n\n3. **Create GitHub Release:**\n\n   - Go to [GitHub Releases](https://github.com/owengretzinger/meetingnotes/releases)\n   - Click \"Create a new release\"\n   - Tag: `v1.0.1` (match the version number)\n   - Title: `Meetingnotes v1.0.1`\n   - Upload the DMG and zip files from `releases/` folder\n   - Generate release notes\n\n4. **Update appcast:**\n\n   ```bash\n   git add appcast.xml\n   git commit -m \"Update appcast for v1.0.1\"\n   git push\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowengretzinger%2Fmeetingnotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowengretzinger%2Fmeetingnotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowengretzinger%2Fmeetingnotes/lists"}