Skip to main content

Tamagonion

Instructions

This is Stinky, it's a Tamagonion and it's running your Tor relay. Tamagonions are cyber creatures that have bravely stepped out of the Tor network to learn what life is like in the clearnet and to help you monitor your relay. It mostly loafs around and browses the Web anonymously, but it's more entertaining than looking at a graph!

More seriously, this program is meant to help you monitor your Tor relay in a more fun way. Start Tamagonion and just let it do its thing in the corner of your desktop or in a tmux split to get a general idea of the state of your relay. It is built to have minimal dependencies, only relying on Stem.

             ▌▌
             ▓▓▀
         ▄▄▄▀▀▀▀▄▄▄
        █   ─  ─   █
       █    ▄  ▄    █
      █     ▀  ▀     █
      █      ──      █
      █              █
       █▄▄▄▄▄▄▄▄▄▄▄▄█

Activation

To activate the viewport, use the tamagonion command as such:

# Install tamagonion
# If you'd rather run it directly from this repository, you can use `uv run tamagonion` instead
$ pip install tamagonion

# By default, we will try to connect to the control port at 127.0.0.1:9051
$ tamagonion

# If you use password authentication, you can supply it with -P or with the TAMAGONION_PASSWORD environment variable
$ tamagonion -P my_password
$ TAMAGONION_PASSWORD=my_password tamagonion

# If the port is listening somewhere else, you can specify it with -i and -p
$ tamagonion -i 192.168.0.10 -p 9999

# If you are connecting using a Unix socket, you can point to it with -s
$ tamagonion -s /var/run/tor/control

Home screen

┌──────────────────────────────────────────────┐
│Relay nickname: exitigefkebk                  │
│Uptime: 0d 06h 08m 09s                        │
│Connections (N/L/Co/F/Cl): 0/0/6/0/0          │
│Download (Cur/Avg/Tot): 338B / 97B / 2MB      │
│Upload (Cur/Avg/Tot): 1KB / 92B / 2MB         │
│Version: 0.4.9.11                             │
│                                              │
│                              ░░░░░░░░        │
│                             ░╔══════╗░   █▄  │
│             ▌▌          z   ░║ EXIT ║░ █████ │
│             ▓▓▀        Z    ░╚══════╝░   █▀  │
│         ▄▄▄▀▀▀▀▄▄▄   Z       ░░░░░░░░        │
│        █   ─  ─    ▄▄▄▄▄                     │
│       █           █  █  █                    │
│      █    ──  ── █  ▀█▀  █  ╓───┬───╖╤═══╕   │
│ ____ █      ∙     █  █  █   ║---│---║╧╤══╧╤  │
││oV2o│█             ▀▀▀▀▀    ║---│---║╒╧══╤╧  │
│╘════╛ █▄▄▄▄▄▄▄▄▄▄▄▄█        ╙───┴───╜╘═══╧   │
└───────────────────────|Home│Status│Hints│Quit┘

The top of the viewport contains various information about your relay. More specifically:

  • The relay nickname as defined in your Tor configuration
  • The uptime since the Tor daemon has started
  • The number of connections
    • NEW: We have received a new incoming OR connection, and are starting the server-side handshake
    • LAUNCHED: We have launched a new outgoing OR connection, and are starting the client-side handshake
    • CONNECTED: The OR connection has been connected and the handshake is done
    • FAILED: Our attempt to open the OR connection failed
    • CLOSED: The OR connection closed in an unremarkable way
  • The current, average and total amount of data that was downloaded and uploaded
  • The version of the Tor binary

You can always come back home by pressing H, and quit the app using Q.

Biology

Tamagonions are very attuned to a relay's operation. You can know how your relay is going by looking at how Stinky is feeling or behaving.

Behaviour Meaning
Asleep The relay is "dormant", meaning it has gone idle due to lack of use or some similar reason.
Sad The relay doesn't have the both the "Valid" and the "Running" flags, or it has the "NoEdConsensus" flag.
Confused The relay discarded expired statuses and server descriptors to fall below the desired threshold of directory information.
Embarrassed A directory authority rejected our descriptor.
Looking away The relay's ORPort is unreachable.
Bored The relay has the "MiddleOnly" flag.
Glitchy The relay doesn't have the "Stable" flag.
Old The relay has the "StaleDesc" flag.
Egg The relay is bootstrapping.
Slow The relay doesn't have the "Fast" flag.
Hurt The Tor binary version is either obsolete, unrecommended or unknown.

Room status check

Stinky's room can get a bit crowded with things it collected along the way. But everything it collects means something special to it.

Object or room state Meaning
Light's out The relay believes the network is unreachable.
Exit sign The relay has the "Exit" flag.
Broken exit sign The relay has the "BadExit" flag.
Books The relay has the "HSDir" flag.
Cassette The relay has the "V2Dir" flag.
Shield The relay has the "Guard" flag.

Status check

To get an explanation of Stinky's state, press S and you will be shown details about the reason behind its behaviour.

┌──────────────────────────────────────────────┐
│┌Status──────────────────────────────────────┐│
││Dormant: Yes                                ││
││Network liveness: Live                      ││
││Bootstrap progress: 100%                    ││
││Enough directory info: Yes                  ││
││Good server descriptor: Yes                 ││
││Reachability: Reachable                     ││
││Version status: none recommended            ││
││Flags: Exit, Fast, Guard, HSDir, Running    ││
││       V2Dir, Valid                         ││
││                                            ││
││                                            ││
││                                            ││
││                                            ││
││                                            ││
││                                            ││
││                                            ││
│└────────────────────────────────────────────┘│
└───────────────────────|Home│Status│Hints│Quit┘

Adjusting the viewport

Here are a few examples of how you could typically launch Tamagonion:

# If you are using Kitty, you can start a new terminal running only tamagonion with the correct dimensions
$ TAMAGONION_PASSWORD=my_password kitty --override remember_window_size=no --override initial_window_width=48c --override initial_window_height=20c tamagonion

# If you are using tmux, you can add a bind as such to create a popup that will quickly show you tamagonion
echo 'bind-key T display-popup -E -w 50 -h 22 -x R -y S -- env TAMAGONION_PASSWORD=my_password /home/user/.pyenv/shims/tamagonion' >> ~/.tmux.conf

# Or if you want a permanent split
pane=$(tmux split-window -h -d -l 48 -P -F '#{pane_id}'); tmux split-window -v -d -l 20 -t "$pane" env TAMAGONION_PASSWORD=my_password tamagonion

You may also like...


This repository contains no AI-generated code and was made with ❤️ by @daxAKAhackerman

Metadata

Release files for tamagonion 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tamagonion 1.2.1
File Size Uploaded
tamagonion-1.2.1.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tamagonion 1.2.1
File Interpreter ABI Platform
tamagonion-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / tamagonion-1.2.1.tar.gz

Download URL tamagonion-1.2.1.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a60ae918d05c891dc370ac5efeea3945588dd8493569e55e5977dd2179c92126
BLAKE2b-256 checksum
How to use checksums
dda41efbd2421990c62402ddc61b9ec8f7b9b1852077c81c24bb67ad12206b7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / tamagonion-1.2.1-py3-none-any.whl

Download URL tamagonion-1.2.1-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eff718388af6b56e38cdb2494cf98189479ed538080816a916d0a696e37ef900
BLAKE2b-256 checksum
How to use checksums
53f4c580071e9ffef55f67f14a2070601a6e07fbbd93cb6b24b7b16f535df4b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page