Stem Docs



Getting started with any new library can be daunting, so let's get our feet wet by jumping straight in with some tutorials...

_images/train.png _images/the_little_relay_that_could.png

Basics for talking with Tor. This will step you through configuring Tor and writing your first script to talk with it.

_images/soviet.png _images/to_russia_with_love.png

Rather than talking to Tor, we'll now talk through it. In this tutorial we'll programmatically start Tor then use it to read a site through mother Russia!

_images/tortoise.png _images/tortoise_and_the_hare.png

As Tor runs it generates a variety of events that controllers can subscribe to be notified of. In this tutorial we'll do just that, writing a curses application that graphs the bandwidth usage of Tor.

_images/riding_hood.png _images/over_the_river.png

Hidden services are a way of providing a service that isn't easily trackable. As a dissident, for instance, this could let you safely publish a blog without getting your door kicked down. Here we'll walk you through an example.

_images/mirror.png _images/mirror_mirror_on_the_wall.png

Getting and acting upon information about relays in the Tor network. Relay information is provided through documents called descriptors. This walks you through both where to get them and a small script to tell you the fastest Tor exits.

_images/windrose.png _images/east_of_the_sun.png

Stem provides several utility modules frequently useful for Tor controller applications. Here we introduce some of them.

_images/mad_hatter.png _images/down_the_rabbit_hole.png

Interactive interpreter for Tor that provides you with direct access to Tor's control interface via either python or direct requests. This is an easy way of experimenting with Stem and learning what Tor can do.

_images/cauldron.png _images/double_double_toil_and_trouble.png

Sometimes it's easiest to learn a library by seeing how it's used in the wild. This is a directory of scripts and applications that use Stem.