{"id":26690180,"url":"https://github.com/spiccinini/xarebot","last_synced_at":"2026-05-14T13:32:49.671Z","repository":{"id":284449286,"uuid":"954982615","full_name":"spiccinini/xarebot","owner":"spiccinini","description":"Xarebot can send and receive XMPP text and media from the cmdline","archived":false,"fork":false,"pushed_at":"2025-03-25T23:42:34.000Z","size":127,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-02T00:03:32.715Z","etag":null,"topics":["cmdline","python3","xmpp","xmpp-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spiccinini.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-25T23:22:53.000Z","updated_at":"2025-04-28T10:56:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"208911c8-c090-4f04-8570-78e5600b1c65","html_url":"https://github.com/spiccinini/xarebot","commit_stats":null,"previous_names":["spiccinini/xarebot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/spiccinini/xarebot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiccinini%2Fxarebot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiccinini%2Fxarebot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiccinini%2Fxarebot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiccinini%2Fxarebot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spiccinini","download_url":"https://codeload.github.com/spiccinini/xarebot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiccinini%2Fxarebot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33026846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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":["cmdline","python3","xmpp","xmpp-bot"],"created_at":"2025-03-26T15:21:34.093Z","updated_at":"2026-05-14T13:32:49.636Z","avatar_url":"https://github.com/spiccinini.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Xarebot\n\nXarebot can send and receive XMPP text and media from the cmdline.\nI use it mainly to exchange things with myself from my smartphone to the cmdline and vice versa. \nI run a snikket chat instance but any XMPP server should work.\nThis bot does not need to be running to receive messages, it fetches them using the archive feature of the server.\n\nFeatures\n\n* Sends OMEMO-encrypted text messages\n* Sends OMEMO-encrypted files\n* Reads unencrypted messages from the server archive (recent messages)\n* Downloads unencrypted files from the archive\n\nReceiving OMEMO-encrypted messages is partially implemented. \nThe client must be active at the moment of message arrival to decrypt OMEMO content. \nReading encrypted messages from MAM is yet to be done.\n\n## Examples\n\n### Sends a text message and also prints the last messages received\n`uv run xarebot.py --send-msg 'Greetings from Pycamp 2025!'`\n\n### Sends a file and also prints the last messages received\n`uv run xarebot.py --send-file ~/Downloads/foo.jpeg`\n\n### Just receives and prints the last messages received\n`uv run xarebot.py`\n\n## Usage\n\nCopy credentials_example.py to credentials.py.\n\n## History\n\nI started working on this idea in Argentina's awesome PyCamp 2025.\n\n## License\n\nIt is AGPL lincensed. Please read all the licenses of the dependencies.\n\n## TODO\n\n* Expose it as a QubesOs service so the bot only runs when requests and \nin one qube but every qube can send or receive messages and files.\n* Make the encription reception work.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiccinini%2Fxarebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspiccinini%2Fxarebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiccinini%2Fxarebot/lists"}