Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
View rec's full-sized avatar
🥝
coding
🥝
coding

Organizations

@pi3d

Block or report rec

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rec/README.md

Tom Ritchford

Everything should be made as simple as possible, but no simpler.

Resumé: .pdf .md

My GitHub stats

I am retired! (unless...)

We moved to Normandy. My job suddenly vanished. AI bores me. I took early retirement! Life is good.

So I'm spending my time on music and digital audio programm. I'm still open to work in digital audio, MIDI, music, lighting control or other things I find personally entertaining.

My Python open source projects

This is a dashboard of my active Python open-source projects on Github, mostly small- to medium-sized libraries that try to do one useful thing as clearly and thoroughly as possible.

(No AI was used in the writing or maintenance of any of these libraries.)

🌟 means "Stars"
👁 means "Subscribers"

🟢 means "Release version"
🕰 means "Most recent non-version commit"

(Last update 2026/07/23, 16:26:46 by https://github.com/rec/multi)

Production-ready

             🧿 safer 🧿     (🌟 193  👁 2)
      A safer writer for files and streams
26/05/09🟢Update version to v5.4.0
26/07/06🕰Move safer evaluation to recs
                 🗃 tdir 🗃     (🌟 6)
     Create and fill a temporary directory
26/05/09🟢Update version to v1.10.0
26/05/08🕰Make project compatible with uv and poetry
              🖋 editor 🖋     (🌟 10)
          Open the default text editor
26/05/09🟢Update version to v1.8.0
26/05/08🕰Make project compatible with uv and poetry
                  ✂️ psplit ✂️
             Split git patch files
26/05/09🟢Update version to v1.2.0
26/05/08🕰Make project compatible with uv and poetry
              🗜 gitz 🗜     (🌟 37  👁 2)
    Tiny useful git commands, some dangerous
26/05/09🟢Update version to v1.9.0
26/05/08🕰Make project compatible with uv and poetry
                   🎨 nc 🎨     (🌟 4)
             Named colors in Python
26/05/09🟢Update version to v1.2.0
26/05/08🕰Make project compatible with uv and poetry
            🗝 dtyper 🗝     (🌟 21  👁 3)
            Fix and improve `typer`
26/06/03🟢Update version to v2.8.0
26/06/03🕰Maintain compatibility with `typer` (fix #14)
              🏫 clsprop 🏫     (🌟 2)
      Just like @property but for classes
26/05/09🟢Update version to v1.5.0
26/05/08🕰Make project compatible with uv and poetry
                🧵 threa 🧵     (🌟 2)
                 Better threads
26/05/09🟢Update version to v1.11.0
26/05/08🕰Make project compatible with uv and poetry
               ⛏ sproc ⛏     (🌟 12)
         Subprocesseses for subhumanses
26/05/09🟢Update version to v2.6.0
26/05/08🕰Make project compatible with uv and poetry
            🍱 zoialib 🍱     (🌟 4  👁 2)
     A patch librarian for the Empress ZOIA
26/05/09🟢Update version to v0.8.0
26/05/08🕰Make project compatible with uv and poetry
                 🌱 xmod 🌱     (🌟 5)
         Turn any object into a module
26/05/09🟢Update version to v1.10.0
26/05/09🕰Make project compatible with uv and poetry (fix #9)
               🛎 impall 🛎     (🌟 8)
            Test-import all modules
26/06/08🟢Update version to v2.0.0
26/06/08🕰Update type annotations to 3.10
              🗂 datacls 🗂     (🌟 3)
         Take the edge off `dataclass`
26/05/09🟢Update version to v4.10.0
26/05/08🕰Make project compatible with uv and poetry
               🐜 abbrev 🐜     (🌟 4)
              Expand abbreviations
26/05/09🟢Update version to v1.4.0
26/05/08🕰Make project compatible with uv and poetry
                  🎴 dek 🎴     (🌟 4)
            The decorator-decorator
26/05/09🟢Update version to v1.6.0
26/05/08🕰Make project compatible with uv and poetry

Beta

                     🎧 fmix 🎧
             A scripted track mixer
26/05/09🟢Update version to v0.2.0
26/06/06🕰Extract code from __main__ into fmix/read_tyro.py
                🎶 tuney 🎶     (👁 2)
          Turn text into music (#noAI)
26/05/09🟢Update version to v0.3.0
26/07/23🕰Bound audio shutdown wait (fix #150)
                  🥞 pullman 🥞
          Manage ghstack pull requests
26/05/09🟢Update version to v0.12.0
26/05/08🕰Make project compatible with uv and poetry
                     🔧 fixo 🔧
Semi-automatic rule based editing of Python code
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                  🏺 fil 🏺     (🌟 3)
         Read/write JSON/TOML/Yaml/txt
26/05/09🟢Update version to v1.6.0
26/05/08🕰Make project compatible with uv and poetry
                   🔢 plur 🔢
        Simple universal word pluralizer
26/02/03🟢Update version to v1.1.0
26/05/08🕰Make project compatible with uv and poetry
                 🍇 cfgs 🍇     (🌟 3)
           XDG standard config files
26/02/03🟢Update version to v0.14.0
26/05/08🕰Make project compatible with uv and poetry

Experimental

                🖐️ fing 🖐️     (🌟 6)
A universal representation of fingering systems for winds, reeds, and brass
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                    🌐 nmr 🌐
           Name all canonical things
26/05/09🟢Update version to v0.11.0
26/05/08🕰Make project compatible with uv and poetry
               🎙 recs 🎙     (🌟 3  👁 2)
             The Universal Recorder
26/05/09🟢Update version to v0.12.0
26/07/23🕰Reject root daemon execution
                  🔉 vl8 🔉     (🌟 4)
                Perturbed audio
26/05/09🟢Update version to v0.4.0
26/05/08🕰Make project compatible with uv and poetry
                   💡 litoid 💡
             Sequence DMX lighting
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                 🗣 def_main 🗣
              A decorator for main
26/02/03🟢Update version to v0.12.0
26/05/08🕰Make project compatible with uv and poetry
                 📓 hardback 📓
        Hardcopy backups of digital data
26/02/03🟢Update version to v0.10.0
26/05/08🕰Make project compatible with uv and poetry
                   📦 backer 📦
           Continuously back up files
26/02/03🟢Update version to v0.8.0
26/05/08🕰Make project compatible with uv and poetry

Mothballed

             🌊 wavemap 🌊     (🌟 10  👁 2)
       Memory map WAVE or raw audio files
26/05/09🟢Update version to v2.2.0
26/05/08🕰Make project compatible with uv and poetry
         🛍 loady 🛍     (🌟 6  👁 2)
       Load Python code and data from git
26/02/03🟢Update version to v1.9.0
26/05/08🕰Make project compatible with uv and poetry
               🏃 runs 🏃     (🌟 3  👁 2)
      Run a block of text as a subprocess
26/02/03🟢Update version to v1.3.0
26/05/08🕰Make project compatible with uv and poetry

Personal

                  🐘 fortune 🐘
     A Mastodon bot for /usr/games/fortune
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                    📚 multi 📚
          Manage all my other projects
23/02/02🟢Update to version v0.1.0
26/05/09🕰Make project compatible with uv and poetry
    ⬜🟩🟦🟥 blocks 🟥🟦🟩⬜
              Solve a block puzzle
26/02/03🟢Update version to v1.1.0
26/05/08🕰Make project compatible with uv and poetry
                     ❓ test
         Tiny bits of experimental code

26/06/24🕰Modify pyproject.toml
                 ⚫ dotfiles
                  My dotfiles

26/07/21🕰Modify elisp/hooks.el

Pinned Loading

  1. tfile tfile Public

    📁 tiny C++11 file utilities 📁

    C++ 24 4

  2. swirly swirly Public

    Tom Swirly's Javascript libraries for Max.

    Max 48 5

  3. echomesh echomesh Public

    An array of noisy, reactive little computers.

    C++ 37 21

Morty Proxy This is a proxified and sanitized view of the page, visit original site.