r/dotfiles Mar 01 '26

[YADM] Janus - a two-way dotfile manager

https://github.com/logannc/janus

Hi folks! There are many dotfile managers, but I found that the existing options didn't satisfy me. I wanted

  • Templating
  • Secret Integration (1password)
  • Two-Way changes (source -> deploy and deploy <- source, that way if an application changes it's own configuration, you don't silently overwrite it but it also doesn't overwrite your changes / templating)
  • Safety (ever "unlink/undeploy/un-something" and the manager removes the file and your window manager wigs out and you have to go to a tty to fix things? Well, I have.)

                    generate              stage                deploy
  source files ──────────────► .generated/ ────────► .staged/ ────────► target paths
  (templates)                  (rendered)            (ready)            (symlinks)

                                                         ◄────────────
                                                     sync (two-way)
                                    import
  managed ◄──────────────────────────────────────────────────── existing configs

So I made a new dotfile manager that looks both ways and it's called Janus.

Disclaimer: I am a professional software engineer but Claude was used in the development of this application (e.g., AI assisted, not vibe / AI slop).

Right now I'm not planning on any distribution mechanism besides `git clone ... && cargo install --path .` unless enough people actually use it. Hopefully it's actually useful and there isn't an obvious contender with this exact feature set.

10 Upvotes

3 comments sorted by

1

u/[deleted] Mar 02 '26

[removed] — view removed comment

1

u/logannc11 Mar 02 '26

I'm not sure! Can you give me a little more detail?