Brook
Brook v2.0.0 — a multi-purpose utility tool for managing network configuration data, tracking entries, and organizing proxy/VPN tunnel information from the command line.
Why Brook?
- Lightweight CLI tool for managing proxy and tunnel configuration data
- No external dependencies, accounts, or API keys needed
- Local-first storage — all your data stays on your machine
- Simple subcommand interface for adding, listing, searching, and exporting entries
- Works on any system with Bash
Commands
| Command | Usage | Description |
|---------|-------|-------------|
| run | brook run <args> | Execute the main function and log the action |
| config | brook config | Show configuration file path |
| status | brook status | Show current tool status (ready/not ready) |
| init | brook init | Initialize the data directory |
| list | brook list | List all entries from the data log |
| add | brook add <entry> | Add a new entry to the data log (timestamped) |
| remove | brook remove <entry> | Remove an entry from the log |
| search | brook search <term> | Search entries by keyword (case-insensitive) |
| export | brook export | Export all data from the log to stdout |
| info | brook info | Show version and data directory path |
| help | brook help | Show the help message with all commands |
| version | brook version | Print the current version string |
Data Storage
All data is stored in ~/.local/share/brook/ (override with BROOK_DIR or XDG_DATA_HOME):
data.log— main data file, one entry per line inYYYY-MM-DD <content>formathistory.log— activity log tracking all command invocations with timestampsconfig.json— configuration file path (referenced byconfigcommand)
Requirements
- Bash (with
set -euo pipefail) - Standard Unix utilities:
date,grep,cat - No Python, no Node.js, no API keys
When to Use
- Logging proxy configurations — Use
brook add "SOCKS5 proxy: 192.168.1.100:1080, auth enabled"to record proxy server details for later reference and search. - Tracking VPN tunnel setups — Use
brook add "WireGuard tunnel: office-vpn, endpoint 10.0.0.1:51820"to maintain a log of all VPN tunnel configurations across environments. - Network troubleshooting notes — Use
brook add "Firewall rule: allow port 8443 outbound for API gateway"to document firewall changes and routing decisions during troubleshooting sessions. - Multi-server inventory — Use
brook add "Server: prod-us-east, proxy port 3128, bypass: internal.corp"to build a searchable inventory of server proxy configurations withbrook search "prod". - Export for documentation — Use
brook exportto dump all logged network configuration data into documentation or hand it off to a team member.
Examples
# Initialize the tool
brook init
# Add proxy configuration entries
brook add "SOCKS5 proxy at 10.0.1.50:1080 for dev environment"
brook add "HTTP proxy at proxy.corp.com:8080 with PAC file"
brook add "WireGuard peer: remote-office, allowed IPs: 10.10.0.0/24"
# List all entries
brook list
# Search for specific configurations
brook search "SOCKS5"
# Check tool status
brook status
# View version and data location
brook info
# Export all data
brook export
# Run main function
brook run "test-connection"
Configuration
Set BROOK_DIR environment variable to change the data directory. Falls back to XDG_DATA_HOME/brook or ~/.local/share/brook/.
Output
All commands print results to stdout. Redirect output to a file if needed:
brook list > all-configs.txt
brook export > brook-data.txt
Note: This is an original, independent implementation by BytesAgain. Not affiliated with or derived from any third-party project.
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
微信扫一扫