{"id":22275613,"url":"https://github.com/fortyseven/aimee","last_synced_at":"2026-04-15T12:37:05.091Z","repository":{"id":266021596,"uuid":"897122631","full_name":"Fortyseven/AImee","owner":"Fortyseven","description":"Realtime LLM conversation bot using Ollama, RealtimeTTS and RealtimeSTT","archived":false,"fork":false,"pushed_at":"2024-12-02T15:16:54.000Z","size":1557,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-30T15:19:32.745Z","etag":null,"topics":["ai","chatbot","llm","ollama"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fortyseven.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}},"created_at":"2024-12-02T04:16:46.000Z","updated_at":"2024-12-02T19:18:13.000Z","dependencies_parsed_at":"2024-12-02T08:52:48.156Z","dependency_job_id":null,"html_url":"https://github.com/Fortyseven/AImee","commit_stats":null,"previous_names":["fortyseven/aimee"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortyseven%2FAImee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortyseven%2FAImee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortyseven%2FAImee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortyseven%2FAImee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fortyseven","download_url":"https://codeload.github.com/Fortyseven/AImee/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245509088,"owners_count":20626910,"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":["ai","chatbot","llm","ollama"],"created_at":"2024-12-03T14:10:13.219Z","updated_at":"2025-10-25T08:13:31.592Z","avatar_url":"https://github.com/Fortyseven.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AImee\n\nAImee is a realtime LLM conversation bot using Ollama, RealtimeTTS and RealtimeSTT, all of which are built on top of OTHER projects. It's just shoulders all the way down.\n\nThis is a terminal app that listens to the currently enabled microphone, transcribes your audio, passes it through to an LLM (maintaining a context window), and then speaks the response.\n\nOn a 4090 this can all go pretty fast. Enough to have a reasonable conversation. Though, the system prompting tries to make sure it doesn't give overly verbose responses.\n\nThis is just a silly toy project. Use it to make your own. Whatever. :)\n\nI am offering no support for this project.\n\n## Notes and Things To Fix\n\n- Missing: you cannot interrupt the response.\n- If you pause too long while talking it will auto-submit and cut you off. But once you begin speaking again, while it's processing, it will treat that like the next bit of dialogue. This is a bug.\n- This could use a cleaner TUI.\n- Proper command line arguments: currently you just edit the constants at the top of `main.py`.\n\n## Project Structure\n\n- `sprompts` contains Yaml files defining various personalities. Yaml, the devil's config file, was chosen because it fits the multiline prompt situation much better than JSON. I did not look at Toml. Maybe that's even better.\n\n  - keys:\n    - `prompt`: the system prompt itself\n    - `user`: overrides the default user description\n    - `temperature`: this has not been implemented yet; it's trivial, why am I slacking...?\n\n- `sprompts/_user.default.yml` is the user injected into the sprompt if `user` is not defined\n\n- `voices` are wav files that Coqui uses to clone voices. You can provide your own. It's not perfect, but it's fun.\n\n## Requirements\n\n- Python \u003e= 3.12 (this is not a hard requirement; just what I used)\n\n## Usage\n\n- Do the usual Python dance: venv, requirements, etc.\n\n- I use a `Makefile` to just type `make` and go. I did this because, if you look inside, I'm overriding LD_LIBRARY_PATH to include a path to a shared file that isn't being referenced properly. This may not be required in your case. Or may not be relevant in future versions. Hell, it may even break something later.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortyseven%2Faimee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffortyseven%2Faimee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortyseven%2Faimee/lists"}