Table of Contents

bin/ Scripts

Custom scripts in ~/bin/. All are plain bash. ~/bin is on PATH via ~/.profile.

sync-to-tilde.sh

Push local mirror to tilde.town:

rsync -avz \
  --exclude='.ssh' --exclude='mbox' --exclude='.DS_Store' \
  --exclude='node_modules' --exclude='_site' --exclude='.git' \
  . tilde.town:~

sync-from-tilde.sh

Pull tilde.town down to the local mirror (same excludes, direction reversed):

rsync -avz <excludes> tilde.town:~ .

backup.sh

Creates a timestamped .tar.gz in ~/tilde-town-backups/:

tar -czf ~/tilde-town-backups/tilde-town-YYYYMMDD-HHMMSS.tar.gz \
  .bashrc .bash_aliases .vimrc .nanorc \
  .ttbp .botany .prosaic \
  public_html public_gopher \
  .plan .project .pronouns \
  --exclude='.ttbp/www' --exclude='.ttbp/gopher'

Excludes the generated HTML/Gopher output from ttbp (only source files are backed up).

gopher-build.sh

Copies gopherhole source to gopherholes/output/:

mkdir -p gopherholes/output/
cp gopherholes/gophermap gopherholes/output/
cp -r gopherholes/{blog,about,projects} gopherholes/output/

Then sync with sync-to-tilde.sh. See Gopher.

gemini-build.sh

Copies Gemini capsule source to gemlogs/output/:

mkdir -p gemlogs/output/
cp gemlogs/{index,about,feed}.gmi gemlogs/output/
cp -r gemlogs/posts gemlogs/output/

Then sync with sync-to-tilde.sh. See Gemini.

ttbp-post.sh

Thin wrapper — just launches the ttbp TUI:

~/.ttbp/bin/ttbp

Convenience script for running from outside the tilde.town environment. See tilde.town Tools.

Typical Workflow

# Edit content locally
micro gemlogs/posts/2026-05-27-new-post.gmi
 
# Build
./bin/gemini-build.sh
./bin/gopher-build.sh
 
# Push everything to tilde.town
./bin/sync-to-tilde.sh
 
# Backup first if making major changes
./bin/backup.sh

See Also