Need help with tychus?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

123 Stars 3 Forks MIT License 34 Commits 1 Opened issues


Command line utility to live-reload your application.

Services available


Need anything else?

Contributors list


Tychus is a command line utility for live reloading applications. Tychus serves your application through a proxy. Anytime the proxy receives an HTTP request, it will automatically rerun your command if the filesystem has changed.

is language agnostic - it can be configured to work with anything: Go, Rust, Ruby, Python, scripts, and arbitrary commands.


Homebrew on macOS

brew tap devlocker/tap
brew install tychus

With Go

Assuming you have a working Go environment and

is in your
go get


Currently isn't supported :(


Usage is simple,

tychus [command]
A proxy will be started on port
. When an HTTP request comes in and the filesystem has changed, your command will be rerun.
tychus go run main.go


Tychus has a few options. In most cases the defaults should be sufficient.

  -a, --app-port int         port your application runs on, overwritten by ENV['PORT'] (default 3000)
  -p, --proxy-port int       proxy port (default 4000)
  -x, --ignore string        comma separated list of directories to ignore file changes in. (default node_modules,log,tmp,vendor)
  -w, --wait                 Wait for command to finish before proxying a request.
  -t, --timeout int          timeout for proxied requests (default 10)

-h, --help help for tychus --debug print debug output --version version for tychus

Note: Tychus will not look for file system changes in any hidden directories (those beginning with



Example: Web Servers

// Go - Hello World Server
$ tychus go run main.go
[tychus] Proxing requests on port 4000 to 3000
[Go App] App Starting on Port 3000

// Make a request $ curl localhost:4000 Hello World $ curl localhost:4000 Hello World

// Save a file, next request will restart your webapp $ curl localhost:4000 [Go App] App Starting on Port 3000 Hello World

This can work with any webserver:

// Rust
tychus cargo run

// Ruby tychus ruby myapp.rb

Need to pass flags? Stick the command in quotes

tychus "ruby myapp.rb -e development"

Complicated command? Stick it in quotes

tychus "go build -o my-bin && echo 'Built Binary' && ./my-bin"

Example: Scripts + Commands

Scenario: You have a webserver running on port

, and it serves static files from the
directory. In the
folder are some markdown files. Should they change, you want them rebuilt and placed into the
directory so the server can pick them up.
tychus "multimarkdown docs/ > public/index.html" --wait --app-port=3005

Now, when you make a request to the proxy on

will pause the request (that's what the
flag is for) until
finishes. Then request will be forwarded to the server on port
will only be run if the filesystem has changed.

Other Proxy Goodies

Error messages

If you make a syntax error, or your program won't build for some reason, the stderr output will be returned by the proxy. Handy for the times you can't see you server (its in another pane / tab / tmux split).

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.