{"id":34063871,"url":"https://github.com/hwipl/nuqql-matrixd","last_synced_at":"2026-06-09T09:31:41.474Z","repository":{"id":57447364,"uuid":"187213004","full_name":"hwipl/nuqql-matrixd","owner":"hwipl","description":"Matrix client network daemon using the Matrix Python SDK","archived":false,"fork":false,"pushed_at":"2023-09-09T11:15:59.000Z","size":190,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-16T04:22:06.815Z","etag":null,"topics":["daemon","instant-messaging-client","matrix-client","matrix-python-sdk","network","python"],"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/hwipl.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":"2019-05-17T12:32:08.000Z","updated_at":"2022-05-14T00:16:30.000Z","dependencies_parsed_at":"2022-09-05T04:51:49.180Z","dependency_job_id":null,"html_url":"https://github.com/hwipl/nuqql-matrixd","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/hwipl/nuqql-matrixd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwipl%2Fnuqql-matrixd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwipl%2Fnuqql-matrixd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwipl%2Fnuqql-matrixd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwipl%2Fnuqql-matrixd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hwipl","download_url":"https://codeload.github.com/hwipl/nuqql-matrixd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwipl%2Fnuqql-matrixd/sbom","scorecard":{"id":474646,"data":{"date":"2025-08-11","repo":{"name":"github.com/hwipl/nuqql-matrixd","commit":"0735126c2acab21cd753e6c1b7c16e1cceaba907"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/hwipl/nuqql-matrixd/python-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/hwipl/nuqql-matrixd/python-publish.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:24","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-19T14:58:24.117Z","repository_id":57447364,"created_at":"2025-08-19T14:58:24.117Z","updated_at":"2025-08-19T14:58:24.117Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34101065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"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":["daemon","instant-messaging-client","matrix-client","matrix-python-sdk","network","python"],"created_at":"2025-12-14T05:51:02.367Z","updated_at":"2026-06-09T09:31:41.454Z","avatar_url":"https://github.com/hwipl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nuqql-matrixd\n\nnuqql-matrixd is a network daemon that implements the nuqql interface and uses\nthe [Matrix Python SDK](https://github.com/matrix-org/matrix-python-sdk) to\nconnect to Matrix chat networks. It can be used as a backend for\n[nuqql](https://github.com/hwipl/nuqql) or as a standalone chat client daemon.\n\nnuqql-matrixd's dependencies are:\n* [nuqql-based](https://github.com/hwipl/nuqql-based)\n* [Matrix Python SDK](https://github.com/matrix-org/matrix-python-sdk)\n* [daemon](https://pypi.org/project/python-daemon/) (optional)\n\n\n## Status\n\nNote: the Matrix Python SDK [project\nstatus](https://github.com/matrix-org/matrix-python-sdk#project-status)\nstrongly recommends using [matrix-nio](https://github.com/poljar/matrix-nio)\nrather than the Matrix Python SDK. Thus, please consider using\n[nuqql-matrixd-nio](https://github.com/hwipl/nuqql-matrixd-nio) that uses\nmatrix-nio rather than nuqql-matrixd.\n\n\n## Quick Start\n\nYou can install nuqql-matrixd and its dependencies, for example, with pip for\nyour user only with the following command:\n\n```console\n$ pip install --user nuqql-matrixd\n```\n\nAfter the installation, you can run nuqql-matrixd by running the\n`nuqql-matrixd` command:\n\n```console\n$ nuqql-matrixd\n```\n\nBy default, it listens on TCP port 32000 on your local host. So, you can\nconnect with, e.g., telnet to it with the following command:\n\n```console\n$ telnet localhost 32000\n```\n\nIn the telnet session you can:\n* add Matrix accounts with: `account add matrix \u003caccount\u003e \u003cpassword\u003e`.\n  * Note: the format of `\u003caccount\u003e` is `\u003cusername\u003e@\u003chomeserver\u003e`, e.g.,\n    `dummy_user@matrix.org`.\n* retrieve the list of accounts and their numbers/IDs with `account list`.\n* retrieve your buddy/room list with `account \u003cid\u003e buddies` or `account \u003cid\u003e\n  chat list`\n* send a message to a room with `account \u003cid\u003e chat send \u003croom\u003e \u003cmessage\u003e`\n\n\n## Usage\n\nSee `nuqql-matrixd --help` for a list of command line arguments:\n\n```\nusage: nuqql-matrixd [--address ADDRESS] [--af {inet,unix}] [-d] [--dir DIR]\n[--disable-history] [--filter-own] [-h] [--loglevel {debug,info,warn,error}]\n[--port PORT] [--push-accounts] [--sockfile SOCKFILE] [--version]\n\nRun nuqql backend matrixd.\n\noptional arguments:\n  --address ADDRESS     set AF_INET listen address\n  --af {inet,unix}      set socket address family: \"inet\" for AF_INET, \"unix\"\n                        for AF_UNIX\n  -d, --daemonize       daemonize process\n  --dir DIR             set working directory\n  --disable-history     disable message history\n  --filter-own          enable filtering of own messages\n  -h, --help            show this help message and exit\n  --loglevel {debug,info,warn,error}\n                        set logging level\n  --port PORT           set AF_INET listen port\n  --push-accounts       enable pushing accounts to client\n  --sockfile SOCKFILE   set AF_UNIX socket file in DIR\n  --version             show program's version number and exit\n```\n\n\n## Changes\n\n* v0.6.0:\n  * Update matrix_client to v0.4.0\n* v0.5.0:\n  * Update nuqql-based to v0.3.0, switch to asyncio, require python\n    version \u003e= 3.7.\n  * Add welcome and account adding help messages.\n  * Disable filtering of own messages, rewrite sender of own messages to\n    `\u003cself\u003e`\n* v0.4.0:\n  * Update nuqql-based to v0.2.0\n* v0.3:\n  * Use nuqql-based as dependency and adapt to nuqql-based changes\n  * Add setup.py for installation and package distribution\n  * Add python type annotations\n  * Restructure code\n  * Cleanups, fixes, and improvements\n* v0.2:\n  * Allow specification of the homeserver url in the account user when adding\n    an account. Thus, the following account users are possible:\n    * `\u003cuser\u003e@\u003cdomain\u003e` (defaults to https)\n    * `\u003cuser\u003e@http://\u003cdomain\u003e[:\u003cport\u003e]`\n    * `\u003cuser\u003e@https://\u003cdomain\u003e[:\u003cport\u003e]`\n  * Save sync token for each account in a file. So, only messages newer than\n    the last sync are retrieved after a restart of the backend.\n  * Add new commands:\n    * `bye`: disconnect from the backend.\n    * `quit`: quit the backend.\n    * `help`: show list of commands and their description.\n  * Add and use \"chat msg\" message format for group chat messages\n  * Store accounts in .ini file `accounts.ini` in the backend's working\n    directory. Note: existing accounts have to be re-added to the backend to\n    be usable with the .ini file.\n  * Add configuration file support: in addition to the command line arguments,\n    configuration parameters can now be set in the .ini file `config.ini` in\n    the backend's working directory.\n  * Add `loglevel` configuration parameter to command line arguments and\n    configuration file for setting the logging level to `debug`, `info`,\n    `warn`, or `error`. Default: `warn`.\n  * Make daemon python module optional\n  * Fixes and improvements\n* v0.1:\n  * First/initial release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwipl%2Fnuqql-matrixd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhwipl%2Fnuqql-matrixd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwipl%2Fnuqql-matrixd/lists"}