silo banner

silo

7 devlogs
15h 37m 8s

silo

A dead simple, opinionated notes tui.

tips

  1. try using a nerd font
  2. make sure your terminal supports emojis (for now)
  3. try running silo help!

shortcuts index

  1. tab switch between righ…

silo

A dead simple, opinionated notes tui.

tips

  1. try using a nerd font
  2. make sure your terminal supports emojis (for now)
  3. try running silo help!

shortcuts index

  1. tab switch between right and left pane
  2. ctrl+e toggle autosave
  3. ctrl+s (editor view) save file
  4. n (sidebar) new file
  5. d (sidebar) delete selected file
  6. r (sidebar) rename selected file
  7. ctrl+x render preview of selected file

pls star https://github.com/nxrmqlly/silo

This project uses AI

Claude used for CRUD logic.
Claude used for writing (some) test cases.

Demo Repository

Loading README...

cskartikey

Tagged your project as well cooked!

🔥 cskartikey marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

riiitam

Shipped this project!

Hours: 15.59
Cookies: 🍪 286
Multiplier: 18.33 cookies/hr

silo

silo is a dead simple, opinionated notes TUI built in Go using Bubble Tea.

I built it over the last couple days to explore building a full terminal workspace from scratch including a simple editor, file explorer, and markdown renderer for the terminal.

the challenge(s)

In addition to learning a lot about Bubble Tea’s model/update/view pattern and how to organize a larger TUI app without it getting messy, the most difficult part was figuring out how to organize multiple interactive panes in a TUI while keeping state manageable. It took some iteration to get the sidebar, editor, and preview modes to interact cleanly.

Basic workflow

  • tab switch between sidebar and editor
  • n create files in the sidebar
  • ctrl+s save
  • ctrl+e toggle autosave
  • ctrl+x render markdown preview
  • … and more, see github!

repo

https://github.com/nxrmqlly/silo

install

Linux and MacOS

run this in your terminal:

curl -sSL https://raw.githubusercontent.com/nxrmqlly/silo/master/install.sh | bash

then launch:

silo

Windows

  1. download the latest .exe from releases
  2. add the .exe to your PATH
  3. run:
silo

why?

I wanted something that felt like a small personal workspace in the terminal without the complexity of configuring a full editor like neovim and learning odd keystrokes (i’ll get there eventually)

~1680 lines of Go

riiitam

v0.3.2 - shipped!

Changelog:

  • fixed some minor bugs
  • add autosaving (ctrl+e to toggle)

Future Ideas If i get more time:
[x] setup wizard
[ ] my own markdown rendering engine
[ ] search / replace
[ ] recent files
[ ] tabs
[ ] configurable keybindings

Attachment
1

Comments

Ary
Ary 10 days ago

looks super clean!

riiitam

v0.3 - Preview!!!

Changelog:

  • implemented autosave (setting toggle TODO)
  • ~ is the corrected alias for $HOME (unix) or %AppData% (windows)
  • added a preview mode! ctrl+x toggles preview mode! (see screenshot)
Attachment
Attachment
0
riiitam

v0.2 - Wizard!

Changelog:

  • Added a setup wizard
  • Added wizardsubcommand
  • Added pwdsubcommand
  • Added changedirsubcommand
  • Added help subcommand
Attachment
Attachment
0
riiitam

v0.1 - First Release!

Changelog:

Added all CRUD functionality

  • [C] n on sidebar for creating a file
  • [R] select file using arrow keys on sidebar to view
  • [U] ctrl+s on editor to save a file
  • [D] d on sidebar for deleting a file

CI builds for v0.1.0 (linux-amd64 only) at https://github.com/nxrmqlly/silo/releases

Attachment
0
riiitam

Sidebar!

Self explanatory, you can use TAB to switch between editor and sidebar which shows you a tree of files.

Attachment
Attachment
0
riiitam

v0.0.0.0.2 ! - still a useless version number

Changes:

  • Added a statusbar
  • Fixed the height of the editor, so that the first line doesnt hide by default
Attachment
0
riiitam

v0.0.0.0.0.0.1 - really tiny
the version numbers above are insignificant, they dont mean anything

  • added the editor pane!
  • can quit using ctrl+c
  • modular codebase
Attachment
0