Skip to content

Commit 9659dd7

Browse files
authored
Modernized and expanded the Projects section of README and auto-formatted it using Prettier defaults (#1391)
1 parent abd8bdf commit 9659dd7

File tree

1 file changed

+60
-59
lines changed

1 file changed

+60
-59
lines changed

README.md

Lines changed: 60 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
[![Documentation Status](https://readthedocs.org/projects/cmd2/badge/?version=latest)](http://cmd2.readthedocs.io/en/latest/?badge=latest)
77
<a href="https://discord.gg/RpVG6tk"><img src="https://img.shields.io/badge/chat-on%20discord-7289da.svg" alt="Chat"></a>
88

9-
109
<p align="center">
1110
<a href="#the-developers-toolbox">Developer's Toolbox</a> •
1211
<a href="#philosophy">Philosophy</a> •
@@ -21,17 +20,15 @@
2120

2221
cmd2 is a tool for building interactive command line applications in Python. Its goal is to make it
2322
quick and easy for developers to build feature-rich and user-friendly interactive command line
24-
applications. It provides a simple API which is an extension of Python's built-in
25-
[cmd](https://docs.python.org/3/library/cmd.html) module. cmd2 provides a wealth of features on top
23+
applications. It provides a simple API which is an extension of Python's built-in
24+
[cmd](https://docs.python.org/3/library/cmd.html) module. cmd2 provides a wealth of features on top
2625
of cmd to make your life easier and eliminates much of the boilerplate code which would be necessary
2726
when using cmd.
2827

29-
The developers toolbox
30-
----------------------
28+
## The developers toolbox
3129

3230
![system schema](https://raw.githubusercontent.com/python-cmd2/cmd2/master/.github/images/graph.drawio.png)
3331

34-
3532
When creating solutions developers have no shortage of tools to create rich and smart user interfaces.
3633
System administrators have long been duct taping together brittle workflows based on a menagerie of simple command line tools created by strangers on github and the guy down the hall.
3734
Unfortunately, when CLIs become significantly complex the ease of command discoverability tends to fade quickly.
@@ -42,15 +39,13 @@ The price we pay for beautifully colored displays is complexity required to aggr
4239
The `cmd2` framework provides a great mixture of both worlds. Application designers can easily create complex applications and rely on the cmd2 library to offer effortless user facing help and extensive tab completion.
4340
When users become comfortable with functionality, cmd2 turns into a feature rich library enabling a smooth transition to full automation. If designed with enough forethought, a well implemented cmd2 application can serve as a boutique workflow tool. `cmd2` pulls off this flexibility based on two pillars of philosophy:
4441

45-
* Tab Completion
46-
* Automation Transition
42+
- Tab Completion
43+
- Automation Transition
4744

48-
Philosophy
49-
-------------
45+
## Philosophy
5046

5147
<a href="https://imgflip.com/i/63h03x"><img src="https://i.imgflip.com/63h03x.jpg" title="made at imgflip.com" width="70%" height="%70"/></a>
5248

53-
5449
Deep extensive tab completion and help text generation based on the argparse library create the first pillar of 'ease of command discovery'. The following is a list of features in this category.
5550

5651
- Great tab completion of commands, subcommands, file system paths, and shell commands.
@@ -69,9 +64,8 @@ cmd2 creates the second pillar of 'ease of transition to automation' through ali
6964
- Powerful and flexible built-in Python scripting of your application using the `run_pyscript` command
7065
- Transcripts for use with built-in regression can be automatically generated from `history -t` or `run_script -t`
7166

67+
## Installation
7268

73-
Installation
74-
------------
7569
On all operating systems, the latest stable version of `cmd2` can be installed using pip:
7670

7771
```bash
@@ -84,31 +78,26 @@ For information on other installation options, see
8478
[Installation Instructions](https://cmd2.readthedocs.io/en/latest/overview/installation.html) in the cmd2
8579
documentation.
8680

81+
## Documentation
8782

88-
Documentation
89-
-------------
9083
The latest documentation for cmd2 can be read online here: https://cmd2.readthedocs.io/en/latest/
9184

9285
It is available in HTML, PDF, and ePub formats.
9386

94-
9587
The best way to learn the cmd2 api is to delve into the example applications located in source under examples.
9688

97-
Tutorials
98-
---------
99-
100-
* PyOhio 2019 presentation:
101-
* [video](https://www.youtube.com/watch?v=pebeWrTqIIw)
102-
* [slides](https://github.com/python-cmd2/talks/blob/master/PyOhio_2019/cmd2-PyOhio_2019.pdf)
103-
* [example code](https://github.com/python-cmd2/talks/tree/master/PyOhio_2019/examples)
104-
* [Cookiecutter](https://github.com/cookiecutter/cookiecutter) Templates from community
105-
* Basic cookiecutter template for cmd2 application : https://github.com/jayrod/cookiecutter-python-cmd2
106-
* Advanced cookiecutter template with external plugin support : https://github.com/jayrod/cookiecutter-python-cmd2-ext-plug
107-
* [Example Applications](https://github.com/jayrod/cmd2-example-apps)
89+
## Tutorials
10890

91+
- PyOhio 2019 presentation:
92+
- [video](https://www.youtube.com/watch?v=pebeWrTqIIw)
93+
- [slides](https://github.com/python-cmd2/talks/blob/master/PyOhio_2019/cmd2-PyOhio_2019.pdf)
94+
- [example code](https://github.com/python-cmd2/talks/tree/master/PyOhio_2019/examples)
95+
- [Cookiecutter](https://github.com/cookiecutter/cookiecutter) Templates from community
96+
- Basic cookiecutter template for cmd2 application : https://github.com/jayrod/cookiecutter-python-cmd2
97+
- Advanced cookiecutter template with external plugin support : https://github.com/jayrod/cookiecutter-python-cmd2-ext-plug
98+
- [Example Applications](https://github.com/jayrod/cmd2-example-apps)
10999

110-
Hello World
111-
-----------
100+
## Hello World
112101

113102
```python
114103
#!/usr/bin/env python
@@ -129,36 +118,48 @@ if __name__ == '__main__':
129118

130119
```
131120

132-
133-
Found a bug?
134-
------------
135-
136-
If you think you've found a bug, please first read through the open [Issues](https://github.com/python-cmd2/cmd2/issues). If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug. At a minimum, please state the following:
137-
138-
* ``cmd2`` version
139-
* Python version
140-
* OS name and version
141-
* What you did to cause the bug to occur
142-
* Include any traceback or error message associated with the bug
143-
144-
145-
Projects using cmd2
146-
-------------------------------
147-
148-
| Application Name | Description | |
149-
|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|---|
150-
| [Jok3r](http://www.jok3r-framework.com) | Network & Web Pentest Automation Framework | |
151-
| [CephFS Shell](https://github.com/ceph/ceph) | [Ceph](https://ceph.com/) is a distributed object, block, and file storage platform | |
152-
| [psiTurk](https://psiturk.org) | An open platform for science on Amazon Mechanical Turk | |
153-
| [Poseidon](https://github.com/CyberReboot/poseidon) | Leverages software-defined networks (SDNs) to acquire and then feed network traffic to a number of machine learning techniques. | |
154-
| [Unipacker](https://github.com/unipacker/unipacker) | Automatic and platform-independent unpacker for Windows binaries based on emulation | |
155-
| [tomcatmanager](https://github.com/tomcatmanager/tomcatmanager) | A command line tool and python library for managing a tomcat server | |
156-
| [Expliot](https://gitlab.com/expliot_framework/expliot) | Internet of Things (IoT) exploitation framework | |
157-
| [mptcpanalyzer]() | Tool to help analyze mptcp pcaps | |
158-
| [clanvas](https://github.com/marklalor/clanvas) | Command-line client for Canvas by Instructure | |
159-
121+
## Found a bug?
122+
123+
If you think you've found a bug, please first read through the open [Issues](https://github.com/python-cmd2/cmd2/issues). If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug. At a minimum, please state the following:
124+
125+
- `cmd2` version
126+
- Python version
127+
- OS name and version
128+
- What you did to cause the bug to occur
129+
- Include any traceback or error message associated with the bug
130+
131+
## Projects using cmd2
132+
133+
| Application Name | Description | Organization or Author |
134+
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
135+
| [CephFS Shell](https://github.com/ceph/ceph) | The Ceph File System, or CephFS, is a POSIX-compliant file system built on top of Ceph’s distributed object store | [ceph](https://ceph.com/) |
136+
| [garak](https://github.com/NVIDIA/garak) | LLM vulnerability scanner that checks if an LLM can be made to fail in a way we don't want | [NVIDIA](https://github.com/NVIDIA) |
137+
| [medusa](https://github.com/Ch0pin/medusa) | Binary instrumentation framework that that automates processes for the dynamic analysis of Android and iOS Applications | [Ch0pin](https://github.com/Ch0pin) |
138+
| [InternalBlue](https://github.com/seemoo-lab/internalblue) | Bluetooth experimentation framework for Broadcom and Cypress chips | [Secure Mobile Networking Lab](https://github.com/seemoo-lab) |
139+
| [SCCMHunter](https://github.com/garrettfoster13/sccmhunter) | A post-ex tool built to streamline identifying, profiling, and attacking SCCM related assets in an Active Directory domain | [Garret Foster](https://github.com/garrettfoster13) |
140+
| [Unipacker](https://github.com/unipacker/unipacker) | Automatic and platform-independent unpacker for Windows binaries based on emulation | [unipacker](https://github.com/unipacker) |
141+
| [Frankenstein](https://github.com/seemoo-lab/frankenstein) | Broadcom and Cypress firmware emulation for fuzzing and further full-stack debugging | [Secure Mobile Networking Lab](https://github.com/seemoo-lab) |
142+
| [Poseidon](https://github.com/faucetsdn/poseidon) | Leverages software-defined networks (SDNs) to acquire and then feed network traffic to a number of machine learning techniques. | [Faucet SDN](https://github.com/faucetsdn) |
143+
| [DFTimewolf](https://github.com/log2timeline/dftimewolf) | A framework for orchestrating forensic collection, processing and data export | [log2timeline](https://github.com/log2timeline) |
144+
| [GAP SDK](https://github.com/GreenWaves-Technologies/gap_sdk) | SDK for Greenwaves Technologies' GAP8 IoT Application Processor | [GreenWaves Technologies](https://github.com/GreenWaves-Technologies) |
145+
| [REW Sploit](https://github.com/REW-sploit/REW-sploit) | Emulate and Dissect Metasploit Framework (MSF) and other attacks | [REW-sploit](https://github.com/REW-sploit) |
146+
| [tomcatmanager](https://github.com/tomcatmanager/tomcatmanager) | A command line tool and python library for managing a tomcat server | [tomcatmanager](https://github.com/tomcatmanager) |
147+
| [Falcon Toolkit](https://github.com/CrowdStrike/Falcon-Toolkit) | Unleash the power of the CrowdStrike Falcon Platform at the CLI | [CrowdStrike](https://github.com/CrowdStrike) |
148+
| [EXPLIoT](https://gitlab.com/expliot_framework/expliot) | Internet of Things Security Testing and Exploitation framework | [expliot_framework](https://gitlab.com/expliot_framework/) |
160149

161150
Possibly defunct but still good examples
162151

163-
* [JSShell](https://github.com/Den1al/JSShell)
164-
* [FLASHMINGO](https://github.com/fireeye/flashmingo)
152+
| Application Name | Description | Organization or Author |
153+
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
154+
| [Katana](https://github.com/JohnHammond/katana) | Automatic CTF Challenge Solver | [John Hammond](https://github.com/JohnHammond) |
155+
| [SatanSword](https://github.com/Lucifer1993/SatanSword) (in Chinese) | Comprehensive Penetration Framework for Red Teaming | [Lucifer1993](https://github.com/Lucifer1993) |
156+
| [Jok3r](http://www.jok3r-framework.com) | Network & Web Pentest Automation Framework | [Koutto](https://github.com/koutto) |
157+
| [Counterfit](https://github.com/Azure/counterfit) | a CLI that provides a generic automation layer for assessing the security of ML models | [Microsoft Azure](https://github.com/Azure) |
158+
| [Overlord](https://github.com/qsecure-labs/overlord) | Red Teaming Infrastructure Automation | [QSecure Labs](https://github.com/qsecure-labs) |
159+
| [Automated Reconnaissance Pipeline](https://github.com/epi052/recon-pipeline) | An automated target reconnaissance pipeline | [epi052](https://github.com/epi052) |
160+
| [JSShell](https://github.com/Den1al/JSShell) | An interactive multi-user web JavaScript (JS) shell | [Den1al](https://github.com/Den1al) |
161+
| [RedShell](https://github.com/Verizon/redshell) | An interactive command prompt for red teaming and pentesting | [Verizon](https://github.com/Verizon) |
162+
| [FLASHMINGO](https://github.com/mandiant/flashmingo) | Automatic analysis of SWF files based on some heuristics. Extensible via plugins. | [Mandiant](https://github.com/mandiant) |
163+
| [psiTurk](https://github.com/NYUCCL/psiTurk) | An open platform for science on Amazon Mechanical Turk | [NYU Computation and Cognition Lab](https://github.com/NYUCCL) |
164+
165+
Note: If you have created an application based on `cmd2` that you would like us to mention here, please get in touch.

0 commit comments

Comments
 (0)