Torreable
Publish static websites as Tor hidden services (.onion sites) via MCP.
Requirements
- Python 3.10+
- Tor running with control port enabled
Installing Tor
macOS:
brew install tor
brew services start tor
Linux:
apt install tor
systemctl start tor
Make sure Tor has a control port. Add to /etc/tor/torrc or ~/.torrc:
ControlPort 9051
Installation
Click the button to install:
Or install manually:
Go to Advanced settings -> Extensions -> Add custom extension. Name to your liking, use type STDIO, and set the command to uvx torreable. Click "Add Extension".
Tools
| Tool | Description |
|---|---|
create_site(name, directory) |
Register a static site |
preview(name) |
Local preview at localhost |
publish(name) |
Publish to Tor network |
unpublish(name) |
Take offline, keep address |
destroy(name) |
Delete site and address |
list_sites() |
Show all sites and status |
How it works
- Sites are stored in
~/.torreable/sites/ - Each site keeps its Tor private key, so the .onion address persists
- Publishing starts a local HTTP server and creates an ephemeral Tor hidden service
- Sites are only reachable while torreable is running
Example
> create_site("myblog", "/path/to/blog/dist")
Created site 'myblog' -> /path/to/blog/dist
> preview("myblog")
Preview running at http://localhost:52431
> publish("myblog")
Published at http://abc123...xyz.onion
> unpublish("myblog")
Unpublished 'myblog'. Address abc123...xyz.onion preserved for later.
Release files for torreable 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| torreable-0.2.0.tar.gz | 4.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| torreable-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.2 kB
Release files / torreable-0.2.0.tar.gz
| Download URL | torreable-0.2.0.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
392fa0aa84f22de62d9ca43ae2682fcf794327f6a382b093d899bfc1e83bbb39
|
|
BLAKE2b-256 checksum How to use checksums |
2b2b40ef2ee9649d2209da1ea3ea4bc300dbaf29aacde38a53635554b77010aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|
Release files / torreable-0.2.0-py3-none-any.whl
| Download URL | torreable-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a27eee4dc828e8d723bbebca7503464d3b8fa930a18ee4c2c56f8e94001beb27
|
|
BLAKE2b-256 checksum How to use checksums |
ca94f8bd30d908d12f2dc0b898cd571d5f13a89c3ffe9e9754d95311e0664c87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|