CLI tools and distribution
See original GitHub issueIt’s time to reassess how our CLI tools are named and distributed.
- At the moment, we compile separate binaries for all our CLI tools (mitmproxy, mitmweb, mitmdump, pathod and pathoc). For each command, we bundle a complete self-contained interpreter and all its dependencies. This significantly bloats our distribution.
- We need more commands. I’m speccing out a separate command for managing and installing mitmproxy addons. I also think we have a “missing command” for processing flows and exiting, without starting a proxy. Conflating this use case with mitmdump has caused significant complexity and confusion.
All of this together has tipped us over to a point where a single-binary distribution makes sense. See previous discussion in #1526.
Proposal
I propose that we roll up all of our tools in a single command called mx, which is invoked as follows:
mx --flags
- equivalent to currentmitmproxy --flags
. This command takes no arguments, so can be the top-level.mx dump args
- equivalent tomitmdump args
. I think there’s an argument for renaming this - the analogy with tcpdump grows tenuous, and “dump” is not really the most apt description of what the tool does.mx web args
- equivalent tomitmweb args
mx pathod args
- equivalent topathod args
mx pathoc args
- equivalent topathoc args
In the next iteration, I would also like to add commands like:
mx addon args
- Addon installation and management (mx addon install
,mx addon list
, etc.)mx proc args
- Command to process a set of flows and exit, used for conversion, client replay, etc. I’m not attached to the proc name here, so lets not argue about that one yet.
Issue Analytics
- State:
- Created 5 years ago
- Comments:10 (10 by maintainers)
Top Results From Across the Web
Command Line Tools for Developers | Toptal
Command line tools are a necessity for every developer. This article provides an overview of various CLI tools and explains why you should...
Read more >How to - build and distribute a CLI Tool with Python - Medium
Navigate to https://test.pypi.org and create an account. Then create an API token so that you can upload the binaries for distribution. Make sure...
Read more >My Favorite CLI Tools - Sebastian Witowski
26 CLI tools that I love. And one that is OK. ... It's better to learn how to use tools that come built-in...
Read more >Set of CLI tools that are installed by default on most distributions
1 Answer 1 ... Anything that can reasonably called Unix or Unix-like has POSIX utilities. You can generally assume that the utilities are...
Read more >CLI Tools for Confluent Platform
This tool manages Confluent Cloud and Confluent Platform, including RBAC, secrets, and the ability to deploy a single-node Confluent Platform instance as well ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
We could follow the e.g. netcat approach here! Like,
mitmproxy
ormx
(or similar) should both be valid.Good shot!
What about something like this as a shorter command that still relates more strongly to the brand?