PyAhmia uses Ahmia.fi to search for hidden services on the Tor network
that match with a specified query, without an explicit requirement for Tor.
- Search Ahmia.fi from the command line
- Export results to CSV
- Enable/Disable routing requests through Tor
- Return results in a clean readable format
- Response caching for faster repeated searches
- Configurable result limits and request timeout
PyAhmia is available on PyPI and can be installed like so:
pip install pyahmia
This will install ahmia and pyahmia as commands.
To start searching, you can call ahmia (or pyahmia) with the specified search query.
example:
ahmia QUERY
PyAhmia works without Tor, but you can enable routing traffic through Tor if you want.
When this is enabled, it will use Ahmia's darknet url instead of the clearnet variant.
To enable routing through Tor, you can call ahmia with the -t, --use-tor flag.
This assumes the tor service is running in the background, otherwise, the command will fail before you can say "hidden
wiki".
If Tor is not installed, you can check out the installation scripts located in pyahmia/scripts.
example:
ahmia QUERY --use-tor
PyAhmia only supports exporting data to csv files (for now), and in order to export, you'll need to specify the
-e, --export flag.
This will export your search results to a file named after your search query.
example:
ahmia QUERY --export
Results can be filtered by 3 time periods (day, week, month). By default, results will be taken from all time periods (
all). You can change this by using the -p, --period option, and pass the time period you want to get results from.
example:
ahmia QUERY --period week
By default, PyAhmia displays up to 100 results. You can change this with the -l, --limit option.
example:
ahmia QUERY --limit 50
To show all results regardless of the limit, use the -a, --all flag.
example:
ahmia QUERY --all
PyAhmia caches responses by default to reduce redundant requests. To disable caching, use the --no-cache flag.
example:
ahmia QUERY --no-cache
You can set a custom timeout (in seconds) for requests using the --timeout option. The default is 10 seconds.
example:
ahmia QUERY --timeout 30
Don't send too many requests with pyahmia. Be nice to the owners of Ahmia.fi :)
Contributions are welcome! If you’d like to improve PyAhmia, fix a bug, or add a feature:
- Fork the repository
- Create a new branch for your changes
- Commit and push your changes
- Open a pull request
Please keep PRs focused and provide a clear description of the problem being solved. Bug reports and feature requests are also appreciated, just open an issue.
This project is licensed under the MIT License, see the LICENSE file for details.
Note
PyAhmia is not in any way affiliated with Ahmia.fi
