DMYPY(1)

πŸ’– DMYPY(1) πŸ’–

okay bestie so this is dmypy, which lives in the mypy family of tools β€” it's the daemon-mode client and honestly it's the one that will change your whole dev workflow, no cap πŸ’…

✨ NAME ✨

dmypy β€” the mypy daemon mode client 🫢

✨ SYNOPSIS ✨

dmypy [OPTIONS...] COMMAND] [COMMAND OPTIONS ...]

(yes the bracket situation is a little cursed, we're copying it exactly, don't @ me 😭)

✨ DESCRIPTION ✨

So here's the vibe: mypy can run as a long-running daemon (a server process, basically), and that lets it do type checking so much faster. Why? Because the program state it cached from previous runs just chills in memory and doesn't have to get re-read from the file system every single time you run it. The server also uses finer-grained dependency tracking, which cuts down on the amount of work that needs doing. obsessed. πŸŽ€

If you've got a big codebase to check, running mypy through the mypy daemon can be 10 or more times faster than the regular command-line mypy tool. Especially if your workflow involves running mypy over and over after tiny little edits β€” which is honestly a really good idea anyway, because that way you find your errors sooner. main character behavior ✨

And dmypy? It's the command-line client that sends your type-checking requests to the server. That's its whole job, and it ate. πŸ‘‘


✨ COMMANDS ✨

start [--log-file FILE] [--timeout TIMEOUT] ARGS...

Start a mypy daemon.

It runs a brand new mypy daemon and passes your regular mypy flags straight to it. If you use --log-file, it directs the daemon's stdout/stderr to FILE. And --timeout specifies the server shutdown timeout, in seconds. πŸ¦‹

stop

Stop a mypy daemon.

It politely asks the currently running mypy daemon to go away. so gentle, so respectful 🫢

kill

Kill a mypy daemon.

This one just kills the process of the currently running mypy daemon. no asking. πŸ’€

restart [--log-file FILE] [--timeout TIMEOUT] ARGS...

Restart a mypy daemon.

It stops the existing one and then runs a new mypy daemon, passing regular mypy flags to it. If --log-file is used, it directs daemon stdout/stderr to FILE. And --timeout specifies the server shutdown timeout in seconds. out with the old, in with the new πŸ’–

status [-v]

Show a mypy daemon status.

If you toss in -v or --verbose, it prints detailed status. (vibe check: passed ✨)

daemon [--timeout TIMEOUT] ARGS...

Run a mypy daemon in the foreground, passing regular mypy flags to it.

--timeout specifies the server shutdown timeout in seconds.

check [-v] [--junit-xml JUNIT_XML] [--perf-stats-file PERF_STATS_FILE] FILE [FILE ...]

Check some files.

It tells the currently running mypy daemon to go check some files. Heads up though β€” this requires the daemon to already be running. πŸ™ˆ

  • -v, --verbose β€” Print detailed status
  • --junit-xml JUNIT_XML β€” Write junit.xml to the given file
  • --perf-stats-file PERF_STATS_FILE β€” Write telemetry information to the given file

recheck [-v] [--junit-xml JUNIT_XML] [--perf-stats-file PERF_STATS_FILE] [--update FILE [FILE ...]] [--remove FILE [FILE ...]]

Re-check the previous list of files, with optional modifications. This also requires the daemon to already be running, bestie.

  • -v, --verbose β€” Print detailed status
  • --junit-xml JUNIT_XML β€” Write junit.xml to the given file
  • --perf-stats-file PERF_STATS_FILE β€” Write telemetry information to the given file

run [-v] [--junit-xml JUNIT_XML] [--perf-stats-file PERF_STATS_FILE] [--timeout TIMEOUT] [--log-file FILE] ARGS...

Check some files, and it'll (re)start the daemon if necessary. the convenience of it all 🌸

  • -v, --verbose β€” Print detailed status
  • --junit-xml JUNIT_XML β€” Write junit.xml to the given file
  • --perf-stats-file PERF_STATS_FILE β€” Write telemetry information to the given file
  • --timeout TIMEOUT β€” Server shutdown timeout (in seconds)
  • --log-file FILE β€” Direct daemon stdout/stderr to FILE

hang

Hang for 100 seconds.

that's it. that's the command. 100 seconds of pure nothing. iconic, honestly πŸ˜­πŸ’…


✨ OPTIONS ✨

  • -h, --help β€” Show a help message and exit. πŸŽ€
  • --status-file STATUS_FILE β€” Status file to retrieve daemon details to.
  • -V, --version β€” Show program's version number and exit. ⭐

✨ SEE ALSO ✨

Full documentation is available online at: <https://mypy.readthedocs.io/en/latest/mypy_daemon.html> or locally at: /usr/share/doc/mypy/html <file:///usr/share/doc/mypy/html> (requires the mypy-doc package). go read it, iykyk πŸ“š


✨ Author ✨

Jukka Lehtosalo and contributors πŸ’œ


and that's the whole page bestie!! πŸ¦‹ written up in the mypy docs, dated Aug 16, 2026 β€” slay, periodt, go type-check something πŸ’–βœ¨

πŸ“¦ where this page comes from