{"id":18009186,"url":"https://github.com/maawad/luna","last_synced_at":"2026-05-04T18:41:41.395Z","repository":{"id":188025219,"uuid":"613659825","full_name":"maawad/luna","owner":"maawad","description":"Personal assistant ","archived":false,"fork":false,"pushed_at":"2023-03-14T03:50:14.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T22:31:08.123Z","etag":null,"topics":["bot","openai","personal-assistant","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maawad.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}},"created_at":"2023-03-14T02:25:52.000Z","updated_at":"2023-07-08T05:14:36.000Z","dependencies_parsed_at":"2023-08-13T11:11:53.134Z","dependency_job_id":"84044c30-3cd4-4e79-bb04-a77a5beb3740","html_url":"https://github.com/maawad/luna","commit_stats":null,"previous_names":["maawad/luna"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maawad%2Fluna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maawad%2Fluna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maawad%2Fluna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maawad%2Fluna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maawad","download_url":"https://codeload.github.com/maawad/luna/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247182337,"owners_count":20897379,"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","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":["bot","openai","personal-assistant","whisper"],"created_at":"2024-10-30T02:08:55.629Z","updated_at":"2026-05-04T18:41:36.362Z","avatar_url":"https://github.com/maawad.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Luna: Personal assistant\n\n\nLuna is my attempt at creating my smart personal assistant.\n\n## Setup:\n\nLuna uses the OpenAI and it requires you setup your `OPENAI_API_KEY` as an environment variable ([see OpenAI article](https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety)).\n\n\n```shell\nexport OPENAI_API_KEY=\"your-openai-key\"\n\n```\n\nOther requirements can be installed via Conda. Create the Conda environment using the following command:\n```shell\nconda env create --name luna --file=conda/luna.yml\nconda activate luna\n```\n\n## [Whisper requirements](https://github.com/openai/whisper/blob/3e1780fd37686666f568be9c99f5b5e3e4f2eb92/README.md#setup):\nLuna uses Whisper which require `ffmpeg`.\n```bash\n# on Ubuntu or Debian\nsudo apt update \u0026\u0026 sudo apt install ffmpeg\n```\n\n\n## Usage:\n\n```shell\n./luna.py --help\nusage: luna.py [-h] [-d AUDIO_DEVICE] [-p PROMPT_SECONDS] [-i INTRO_SECONDS]\n\noptions:\n  -h, --help            show this help message and exit\n  -d AUDIO_DEVICE, --audio-device AUDIO_DEVICE\n                        Index of the audio device that Luna will listen to.\n  -p PROMPT_SECONDS, --prompt-seconds PROMPT_SECONDS\n                        How long (in seconds) will Luna keep listening for\n                        questions.\n  -i INTRO_SECONDS, --intro-seconds INTRO_SECONDS\n                        How long (in seconds) will Luna wait for \"Hello\n                        Luna!\".\n\n```\nPlease note that once the script runs, **Luna will always be listening and recording all audio**. All recorded audio will be converted to text, then an answer to the question will be displayed in the command line. Luna will send ALL recordings to OpenAI and Whisper inference models. Recordings will be stored to disk but overwritten regularly. You are responsible for your own privacy and following OpenAI terms of services.\n\nExample conversation:\n\n```shell\nListening....\nYou:   Hello Luna.\nStarting conversation with Luna..\nListening....\nTranscribing....\nYou:  Hey Luna, can you recommend a movie for me to watch?\nLuna:\n\nThat's a tough one! It really depends on what kind of movies you like. \nIf you don't have any particular genre in mind, I'd recommend trying out the movie \"Inside Out\" \nor the Netflix original movie \"The Kissing Booth\" for a good laugh.\nListening....\nTranscribing....\nListening....\nTranscribing....\nYou:  Hey Luna, who starts Inside Out?\nLuna:\n\nThe main characters of Inside Out are voiced by Amy Poehler,\nPhyllis Smith, Bill Hader, Lewis Black, Mindy Kaling, and Richard Kind.\nListening....\nTranscribing....\nYou:  Luna, where can I watch inside out?\nLuna:\n\nYou can watch Inside Out on Disney+, Netflix, Amazon Prime Video, and YouTube.\nListening....\nTranscribing....\nYou:  Bye, Luna.\n\n```\n\n# License\nSee [LICENSE](LICENSE) for the python file License.\n\n- [Whisper](https://github.com/openai/whisper/blob/3e1780fd37686666f568be9c99f5b5e3e4f2eb92/README.md#license)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaawad%2Fluna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaawad%2Fluna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaawad%2Fluna/lists"}