{"id":22548975,"url":"https://github.com/teemow/mnote","last_synced_at":"2026-02-07T11:02:26.413Z","repository":{"id":266891227,"uuid":"899650337","full_name":"teemow/mnote","owner":"teemow","description":"Generates meeting notes and summaries from video recordings","archived":false,"fork":false,"pushed_at":"2024-12-09T08:39:53.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T21:13:41.493Z","etag":null,"topics":["ai","chatgpt","google-meet","kubeai","kubernetes","meeting-minutes","transcription","video-transcription","whisper"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teemow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-12-06T17:56:44.000Z","updated_at":"2024-12-09T08:36:45.000Z","dependencies_parsed_at":"2024-12-06T20:27:11.180Z","dependency_job_id":"fccdff87-048d-490c-9a38-72962d7ff30b","html_url":"https://github.com/teemow/mnote","commit_stats":null,"previous_names":["teemow/mnote"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/teemow/mnote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemow%2Fmnote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemow%2Fmnote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemow%2Fmnote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemow%2Fmnote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teemow","download_url":"https://codeload.github.com/teemow/mnote/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemow%2Fmnote/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29193089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai","chatgpt","google-meet","kubeai","kubernetes","meeting-minutes","transcription","video-transcription","whisper"],"created_at":"2024-12-07T16:07:25.031Z","updated_at":"2026-02-07T11:02:26.395Z","avatar_url":"https://github.com/teemow.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mnote\n\n**mnote** is a CLI tool for summarizing meetings using AI. It transcribes audio from video files, processes the transcription using a Whisper-based API, and generates detailed summaries with ChatGPT.\n\n## Features\n\n- Extracts audio from video files.\n- Transcribes audio using a configurable Whisper-based transcription service.\n- Summarizes transcripts using ChatGPT with customizable prompts.\n- Configurable transcription API, Whisper model, and ChatGPT model.\n\n---\n\n## Installation\n\n### Prerequisites\nEnsure the following tools are installed on your system and available in the `PATH`:\n- `ffmpeg` (for audio extraction)\n- `curl` (for API requests)\n- `jq` (for processing JSON output)\n- `chatgpt` ([chatgpt-cli](https://github.com/kardolus/chatgpt-cli) for summarization)\n\n### Environment Variable\n\nSet your OpenAI API key for the `chatgpt` tool:\n\n```bash\nexport OPENAI_API_KEY=\"your_openai_api_key\"\n```\n\n### Clone and Setup\n\nClone the repository:\n\n```bash\ngit clone https://github.com/teemow/mnote.git\ncd mnote\n```\n\n:\u003e [!WARNING]\n\u003e\nMake the script executable:\n\n```bash\nchmod +x mnote.sh\n```\n\n(Optional) Add it to your `PATH`:\n\n```bash\nsudo mv mnote.sh /usr/local/bin/mnote\n```\n\n---\n\n## Configuration\n\n### Default Configuration\n\nUpon first run, **mnote** will create a configuration directory at\n`~/.config/mnote` with the following structure:\n\n```\n~/.config/mnote/\n├── config\n└── prompts/\n    └── summarize\n```\n\n### Configuration File (`~/.config/mnote/config`)\n\nThe `config` file contains the following default values:\n\n```ini\n# Transcription API URL\nTRANSCRIPTION_API_URL=https://example.com/openai/v1/audio/transcriptions\n\n# Whisper Model for Transcription\nWHISPER_MODEL=faster-whisper-medium-en-cpu\n\n# ChatGPT Model for Summarization\nCHATGPT_MODEL=gpt-4o-2024-05-13\n```\n\nYou can edit these values to customize the transcription API, Whisper model,\nand ChatGPT model.\n\n### Prompts\n\nPrompts are stored in `~/.config/mnote/prompts`. The default prompt\n(`summarize`) is created automatically:\n\n```plaintext\nCreate a detailed summary of the following meeting transcript. Structure the summary according to the main topics discussed and organize the information into logical sections. For each topic, summarize who was involved, what was discussed in detail, what decisions were made, what problems or challenges were identified, and what solutions were proposed or implemented. If specific names are included in the transcript, use them to accurately attribute the statements. Also document all important feedback and planned actions. Pay attention to details on time frames, responsibilities, open questions and any next steps. Conclude the summary with a brief overview of the key findings and next steps.\n```\n\nTo add a custom prompt, create a new file in the `prompts` Directory\n(e.g., `meeting`) and reference it using the `--prompt` option.\n\n---\n\n## Usage\n\n### Basic Command\n\n```bash\nmnote \u003cvideo_directory\u003e\n```\n\n- **`\u003cvideo_directory\u003e`**: Path to the directory containing video files.\n\n### Options\n\n- `--prompt \u003cprompt_name\u003e`: Use a custom prompt file from `~/.config/mnote/prompts`.\n- `--help`: Display the help message.\n\n### Examples\n\n#### Summarize a Directory of Videos\n\n```bash\nmnote /path/to/videos\n```\n\nUses the default prompt (`summarize`) to process all supported video files in\nthe directory.\n\n#### Use a Custom Prompt\n\n```bash\nmnote --prompt meeting /path/to/videos\n```\n\nUses the custom prompt file `~/.config/mnote/prompts/meeting` for summarization.\n\n---\n\n## How It Works\n\n1. **Audio Extraction**:  \n   The tool uses `ffmpeg` to extract audio from video files.\n\n2. **Transcription**:  \n   Audio files are sent to a Whisper-based transcription API specified in the\n   configuration (`TRANSCRIPTION_API_URL`).\n\n3. **Summarization**:  \n   Transcriptions are processed using the `chatgpt` CLI tool with the\n   specified ChatGPT model and prompt.\n\n4. **Output**:  \n   Summarized meeting notes are saved as `.txt` files in the same directory\n   as the input videos.\n\n---\n\n## Supported File Formats\n\n- `.mp4`\n- `.mkv`\n- `.avi`\n- `.mov`\n\n---\n\n## Dependencies\n\nEnsure the following tools are installed:\n\n- `ffmpeg`: [Installation Guide](https://ffmpeg.org/download.html)\n- `curl`: [Installation Guide](https://curl.se/)\n- `jq`: [Installation Guide](https://stedolan.github.io/jq/download/)\n- `chatgpt`: Install from [chatgpt-cli](https://github.com/kardolus/chatgpt-cli)\n\n---\n\n## Notes\n\n- **Transcription Service**: The transcription service is based on KubeAI,\n  deployed via a Helm chart in a Kubernetes cluster. Ensure the service is\n  properly configured and accessible via the `TRANSCRIPTION_API_URL` in the\n  configuration file.\n- **OpenAI API**: You must have an OpenAI API key for the `chatgpt` CLI tool.\n  Register at [OpenAI](https://platform.openai.com/).\n\n---\n\n## Author\n\nTimo Derstappen\n\n---\n\n## License\n\nThis project is licensed under the [Apache 2.0 License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteemow%2Fmnote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteemow%2Fmnote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteemow%2Fmnote/lists"}