You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
josiah dde6ec039f Remove unnecessary print line. 5 months ago
docker Remove dependency, update 5 months ago
examples Provide reasonable defaults. 5 months ago
molly Remove unnecessary print line. 5 months ago
tests Initial commit. 5 months ago
.gitignore don't accidentally commit your data dir lmao 5 months ago
LICENSE Initial commit. 5 months ago Remove unnecessary text from 5 months ago Update todos. 5 months ago
run_molly Initial commit. 5 months ago
setup.cfg Initial commit. 5 months ago Remove dependency, update 5 months ago


glue together the matrix and org-mode. built with matrix-nio

Project Summary

  • Send your thoughts to a matrix channel! Its easy, its everywhere, and its plaintext.

  • Convert individual messages in your matrix channel into todo items in orgmode

    • Assumes the same sorts of things as other mobile orgmode solutions, a file, that sort of thing.

  • Eventually, come back on your main computer and refile shit accordingly.

Project Outline

  • Be able to write orgmode from within Python

    • Write basic todo entries

    • Add meta data (when was I captured, etc)

  • Be able to read matrix messages from within Python (use matrix nio, apparently its the Approved Shit now

  • Make E2EE work; supposedly that's doable with this bot.

  • Clear out the unnecessary parts of the template I copied

  • Add back in the tooling improvements

  • Improve orgmode integration

    • Have try/except blocks, verify that the path exists, make it if it doesn't, etc etc etc.

  • Probably need to write one or two lines of lisp to help the end user not keep the refile buffer open; that'd just get in their way.

  • Package using Pypi

    • Eventually I'd like the option of deploying via ansible with the community playbooks, so also build out a Dockerfile.

  • Add an ansible-playbook for deploying via matrix-docker-ansible-deploy, if they'll have me.

  • Use all the same packages i'm floating for developer standards at work:


  • setup all of this stuff

    • Precommit (for all your commithook needs)

      • On initial setup you likely want to run a new config against all files: `pre-commit run –all-files`

    • Black + commithooks; feel free to tweak line settings

      • Black is still technically pre-release; install like `pipenv install -d black –pre`

    • Mypy + commithooks

    • Pylint / Flake8; feel free to tweak line settings

    • Pipenv (bluh. I guess this is what work is using, so, fine.)

      • append installs with `-d` to add them as a dev dependency

    • Pytest + unittest.

    • Add on pydantic to mypy

    • Futz with mypy's config to require declaring types

    • Python versions with pyenv

      • This is pretty easy, though its a very stupid curl | bash. Fuckers.

      • Also some annoying prereqs that you need to be careful about; some Mac specific fuckery.

  • Look into alternate methods of revert buffer per:

Editor bullshit

  • Get LSPs shit working with my new setup:

    • auto detect pyvenv

    • resolve imports

    • etc

  • make magit play nice with pre-commit hooks

Making this work

  • Get a user created that you'll use its ocredentials for.

  • Get the room ID for the room you want to use.

    • you can find this in the advanced settings for a room, generally.

  • Fill out the config.yaml file appropiately.