- docker-compose.yml for podman-compose deployment - Makefile: add up/down/logs compose targets - README: plugin table, container quickstart, make targets - PROJECT: plugin categories, deployment matrix, design decisions - ROADMAP: v0.1 done, v0.2 current, v0.3-v1.0 planned - TASKS: current sprint with priorities - TODO: full backlog organized by wave - CHEATSHEET: reorganized by category (OSINT, Red Team, OPSEC) - INSTALL: container deployment instructions - DEBUG: container logs, hot-reload, DNS troubleshooting - USAGE: all 19 commands documented Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
117 lines
2.7 KiB
Markdown
117 lines
2.7 KiB
Markdown
# Cheatsheet
|
|
|
|
## Dev Commands
|
|
|
|
```bash
|
|
make install # Setup venv + install
|
|
make test # Run tests
|
|
make lint # Lint with ruff
|
|
make run # Start bot (bare metal)
|
|
make link # Symlink to ~/.local/bin
|
|
derp -c config.toml # Run with custom config
|
|
derp -v # Verbose/debug mode
|
|
```
|
|
|
|
## Container
|
|
|
|
```bash
|
|
make build # Build image
|
|
make up # Start (podman-compose)
|
|
make down # Stop
|
|
make logs # Follow logs
|
|
```
|
|
|
|
## Bot Commands
|
|
|
|
```
|
|
!ping # Pong
|
|
!help # List commands
|
|
!help <cmd> # Command help
|
|
!help <plugin> # Plugin description + commands
|
|
!version # Bot version
|
|
!uptime # Bot uptime
|
|
!echo <text> # Echo text back
|
|
!h # Shorthand (any unambiguous prefix works)
|
|
```
|
|
|
|
## Plugin Management
|
|
|
|
```
|
|
!plugins # List loaded plugins
|
|
!load <plugin> # Hot-load a plugin
|
|
!reload <plugin> # Reload a changed plugin
|
|
!unload <plugin> # Remove a plugin
|
|
```
|
|
|
|
## OSINT
|
|
|
|
```
|
|
!dns example.com # A record lookup
|
|
!dns 1.2.3.4 # Reverse PTR lookup
|
|
!dns example.com MX # Specific type (A/AAAA/MX/NS/TXT/CNAME/PTR/SOA)
|
|
!cert example.com # CT log lookup (max 5 domains)
|
|
```
|
|
|
|
## Red Team
|
|
|
|
```
|
|
!revshell bash 10.0.0.1 4444 # Reverse shell one-liner
|
|
!revshell list # List types (bash/sh/nc/nce/python/perl/php/ruby/socat/lua/ps)
|
|
!encode b64 hello # Base64 encode
|
|
!decode hex 68656c6c6f # Hex decode
|
|
!encode rot13 hello # ROT13
|
|
!hash hello # MD5 + SHA1 + SHA256
|
|
!hash sha512 hello # Specific algorithm
|
|
!hashid <hash> # Identify hash type
|
|
```
|
|
|
|
## OPSEC
|
|
|
|
```
|
|
!defang https://evil.com # Defang IOC
|
|
!refang hxxps[://]evil[.]com # Refang IOC
|
|
```
|
|
|
|
## Network
|
|
|
|
```
|
|
!cidr 10.0.0.0/24 # Subnet info
|
|
!cidr contains 10.0.0.0/8 10.1.2.3 # Membership check
|
|
```
|
|
|
|
## Plugin Template
|
|
|
|
```python
|
|
from derp.plugin import command, event
|
|
|
|
@command("name", help="Description")
|
|
async def cmd_name(bot, message):
|
|
text = message.text.split(None, 1)
|
|
await bot.reply(message, "response")
|
|
|
|
@event("JOIN")
|
|
async def on_join(bot, message):
|
|
await bot.send(message.target, f"Hi {message.nick}")
|
|
```
|
|
|
|
## Message Object
|
|
|
|
```
|
|
msg.nick # Sender nick
|
|
msg.target # Channel or nick
|
|
msg.text # Message body
|
|
msg.is_channel # True if channel
|
|
msg.prefix # nick!user@host
|
|
msg.command # PRIVMSG, JOIN, etc.
|
|
msg.params # All params list
|
|
```
|
|
|
|
## Config Locations
|
|
|
|
```
|
|
1. --config PATH # CLI flag
|
|
2. ./config/derp.toml # Project dir
|
|
3. ~/.config/derp/derp.toml # User config
|
|
4. Built-in defaults # Fallback
|
|
```
|