In-memory Git playground ✨ Nova does not touch the file system unless told so.

  • By Thomas Albertini
  • Last update: Dec 4, 2022
  • Comments: 0

Nova 🌙

Abstraction for git repositories.

I started this project mainly to keep practicing Go. I was working on a text editor and with go-git on two different projects so I decided to combine the two.

Nova can clone git repositories in-memory and supports a bunch of plumbing and porcelain-ish git commands. I'm planning to slowly bring more and more feature on it.

# Either
$ go run main.go
# or
$ nova

Nova currently supports several commands:

  • nova <FILE_NAME> - File I/O
  • go to <BRANCH_NAME> - Creates branch and/or Checkout
  • screenshot - Add and Commit (equivalent to git commit -am ...)
  • ls - Lists all the files (does not expand subdirectories yet)
  • read <FILE_NAME> - Displays the content of a file
  • status - Displays the status of the worktree (equivalent to git status)
  • log - Displays the commits (equivalent to git log)
  • branches - Displays the list of branches
  • stop - Exits Nova

more will be added.

Nova is able to edit files in memory with its built-in editor and save them on either on its store or on disk. It won't ever do I/O operations on the real directory (unless explicitly told to do so).


  • CTRL+X - Exit
  • CTRL+R - Save on disk
  • CTRL+S - Save as memory file