Skip to content

ignavan39/sisyphus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                              ⟳  S I S Y P H U S


                                                                           ╴╷
                                                                       ────  
                                                                   ────      
                                                              ─────          
                                                          ────               
                                                     ─────                   
                                                 ────                        
                                             ────                            
                                        ─────                                
                                    ────                                     
                   O           ─────                                         
                   |\      ────                                              
                  / \● ────                                                  
                  ─────                                                      
              ────                                                           
         ─────                                                               
     ────                                                                    
└────                                                                        

  [█████░░░░░░░░░░░░░░░]  ↗ ascending     Ctrl+C to accept fate

sisyphus

A meditative terminal animation. Zero config. Pure Go. Infinitely looping.

Go Version License: MIT Go Report Card CI

"One must imagine Sisyphus happy." — Albert Camus, The Myth of Sisyphus (1942)


Install

✨ One-line (Linux & macOS)

curl -fsSL https://raw.githubusercontent.com/ignavan39/sisyphus/master/install.sh | sh

That's it. The script auto-detects your OS and architecture, downloads the right binary from the latest release, and drops it in /usr/local/bin.

Install options
# Install a specific version
SISYPHUS_VERSION=v1.2.0 curl -fsSL https://raw.githubusercontent.com/ignavan39/sisyphus/master/install.sh | sh

# Install to a custom directory (no sudo needed)
SISYPHUS_DIR=~/.local/bin curl -fsSL https://raw.githubusercontent.com/ignavan39/sisyphus/master/install.sh | sh

# Disable colored output
NO_COLOR=1 curl -fsSL https://raw.githubusercontent.com/ignavan39/sisyphus/master/install.sh | sh

go install

go install github.com/ignavan39/sisyphus/cmd/sisyphus@latest

Homebrew

brew install ignavan39/tap/sisyphus

From source

git clone https://github.com/ignavan39/sisyphus
cd sisyphus
make install

Pre-built binaries

Download from Releases — binaries for Linux, macOS, and Windows (amd64 + arm64), plus checksums.txt.


Uninstall

rm $(which sisyphus)

Usage

sisyphus              # 12 fps — default, works everywhere
sisyphus -fps 24      # silky smooth
sisyphus -fps 5       # slow and contemplative
sisyphus -version     # print version
Flag Default Description
-fps 12 Target frame rate (1–60)
-version Print version and exit

Press Ctrl+C to exit. You'll receive a parting quote.


What is this?

sisyphus renders a real-time ASCII animation of Sisyphus pushing his boulder up a straight slope. At the top, the boulder rolls back down. Sisyphus follows. Repeat forever.

The slope is a straight diagonal line — no curves, no tricks. Just a hill.

The boulder accelerates as it rolls back down. Sisyphus slows slightly as he tires near the top. At the peak, a quote from Camus flashes for two seconds before the drop.

It is completely useless. That is the point.


Features

  • Straight diagonal slope — a proper hill, not a sine wave
  • 🪨 Realistic acceleration — boulder speeds up on the way down
  • 💬 Rotating Camus quotes at the summit
  • 🎨 ANSI colors with graceful fallback
  • Live resize — reshape your window at will
  • 🪶 Single binary, ~200 lines of logic — one dependency (x/term)

Project layout

sisyphus/
├── cmd/sisyphus/
│   └── main.go                   # flags, signal handling, entry point
├── internal/
│   ├── animation/
│   │   ├── state.go              # phase machine: Pushing → Summit → Rolling
│   │   ├── render.go             # pure render: Frame(state, w, h) → stdout
│   │   ├── sprites.go            # ASCII art, boulder frames, Camus quotes
│   │   └── run.go                # main loop
│   └── terminal/
│       └── terminal.go           # Size, Move, Color, HideCursor…
├── .github/workflows/
│   ├── ci.yml                    # build + test on every push / PR
│   └── release.yml               # cross-compile + GitHub Release on tag push
├── install.sh                    # one-line installer
└── Makefile                      # build / install / cross / clean

Building from source

make build      # → ./sisyphus  (current platform)
make install    # → $GOPATH/bin/sisyphus
make test       # go test ./...
make cross      # → dist/  (Linux + macOS + Windows, amd64 + arm64)
make clean      # remove ./sisyphus and ./dist/

Cutting a release

git tag v1.0.0
git push origin v1.0.0
# GitHub Actions cross-compiles 5 targets, generates checksums, publishes release

Or with make:

make release VERSION=v1.0.0

Contributing

Issues and pull requests are welcome. Some ideas:

  • NO_COLOR / --no-color support
  • Configurable slope angle via flag
  • Multiple slope profiles
  • Windows ConHost compatibility
  • A --quotes flag — Camus only, no animation
  • Homebrew formula

Please open an issue before starting large changes.


License

MIT


"The struggle itself toward the heights is enough to fill a man's heart."

 

If this made you smile — or made you think — a ⭐ goes a long way.

About

renders a real-time ASCII animation of Sisyphus pushing his boulder up a straight slope. At the top, the boulder rolls back down. Sisyphus follows. Repeat forever

Topics

Resources

License

Stars

Watchers

Forks

Packages