Skip to main content

rtdm

read the damn manual.

An AI shell helper that gives you the command without the commentary.

$ rtdm find files over 100mb
find . -size +100M

Install

pipx install rtdm
rtdm config init

rtdm config init walks you through a one-time setup. Pick local for free, self-hosted use, or remote if you have an API key from rtdm.sh.

Usage

Three modes

rtdm <query>           # get a shell command
rtdm -q <question>     # ask a general terminal question
rtdm -e <command>      # explain a command

Multi-word queries don't need quotes — words after the flags are joined with spaces:

rtdm find files over 100mb     # works
rtdm "find files over 100mb"   # also works

The exception is when your input contains characters the shell would interpret — globs (*, ?, []), control operators (;, |, &, <, >), or arguments that look like flags (e.g. --recursive). Quote those:

rtdm -e "find . -mtime -7 -exec rm {} \;"

Plain dashes are fine; rtdm find files -size 100mb works without quoting.

Flags

Flag Effect
-c Copy the output to the clipboard
-x Execute the returned command (cmd mode only, with confirmation)

Subcommands

Account self-service for hosted-mode users. All require remote mode (except whoami, which works in either mode).

Subcommand Effect
rtdm portal Open the Stripe billing portal (manage subscription, invoices)
rtdm rotate Issue a new API key, revoke the old one, update local config
rtdm usage Show this month's usage and remaining quota
rtdm whoami Show which key/host this CLI is configured against (no network)

Examples

$ rtdm extract a tar.gz file
tar -xzf archive.tar.gz

$ rtdm -q what does grep -E do
grep -E enables extended regular expressions, allowing operators like
+, ?, |, (), and {} without backslash escaping.

$ rtdm -e "find . -mtime -7 -exec rm {} \;"
This finds every file under the current directory modified in the last
7 days and deletes each one. -mtime -7 selects "less than 7 days ago";
-exec rm {} \; runs rm on each match.

$ rtdm -c list all my docker containers
docker ps -a
(copied to clipboard)

Local mode (free, self-hosted)

Run your own Ollama, point rtdm at it. No API key needed, no network call to anything but your own machine. Free forever.

See LOCAL.md for setup.

Hosted mode ($3/month)

We run rtdm at rtdm.sh on dedicated GPU hardware. No setup, no Ollama install, no model downloads — just one HTTP call per query. 500 queries per month, cancel anytime.

Sign up at rtdm.sh.

Privacy

We don't log your queries on our servers. We don't train models on them. We don't sell anything to anyone.

We do use Cloudflare in front for DDoS protection, which means Cloudflare technically sees TLS-decrypted requests as they pass through. Most modern services work this way and we think the protection is worth it, but we know some of you will disagree. See rtdm.sh for the full note.

If you want zero third parties in the path, use local mode.

Configuration

The config file lives at ~/.config/rtdm/config.toml (or $XDG_CONFIG_HOME/rtdm/config.toml):

mode = "remote"  # or "local"

[remote]
api_key = "rtdm_live_..."
endpoint = "https://rtdm.sh"

[local]
ollama_url = "http://localhost:11434"
model = "qwen2.5-coder:7b-instruct-q4_K_M"

Useful subcommands:

rtdm config init     # interactive setup
rtdm config show     # print effective configuration
rtdm config path     # print the config file location

Development

git clone https://github.com/t3t5u0403/rtdm-cli
cd rtdm-cli
uv sync --extra dev
uv run pytest

License

MIT. See LICENSE.

Metadata

Release files for rtdm 0.3.0

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

Source distribution (sdist)

Source distribution for rtdm 0.3.0
File Size Uploaded
rtdm-0.3.0.tar.gz 40.7 kB Details

Built distribution (wheel)

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

Total release size: 70.2 kB

Release files / rtdm-0.3.0.tar.gz

Download URL rtdm-0.3.0.tar.gz
Size 40.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1b37afd4258fa52207d9cfb91b78ee37eb89c323029f5214c4061fdb86dd9b73
BLAKE2b-256 checksum
How to use checksums
4c35d3d6e6f894a04e5376c8d29908a96b52f8a3aa9f14d63111d27be09e92c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / rtdm-0.3.0-py3-none-any.whl

Download URL rtdm-0.3.0-py3-none-any.whl
Size 29.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b08d93f13d8d77edb457f52c3af00e5564e670c30a9541427930eeeee213c28
BLAKE2b-256 checksum
How to use checksums
184a137e7494f76a6618c0301fbdea61802a51348c893aeb66e0ac42e2ad1192
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.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