bhcli

A TUI for chatting on LE PHP Chats
git clone https://git.dasho.dev/bhcli.git
Log | Files | Refs | README

MANUAL.md (32312B)


BHCLI Manual

Complete reference guide for BHCLI. Everything you need to master the client.

Table of Contents

  1. Some results may seem counterintuitive but reflect the AI's interpretation
  2. Some results may seem counterintuitive but reflect the AI's interpretation
  3. Some results may seem counterintuitive but reflect the AI's interpretation
  4. Some results may seem counterintuitive but reflect the AI's interpretation
  5. Some results may seem counterintuitive but reflect the AI's interpretation
  6. Some results may seem counterintuitive but reflect the AI's interpretation
  7. Some results may seem counterintuitive but reflect the AI's interpretation
  8. Some results may seem counterintuitive but reflect the AI's interpretation
  9. Some results may seem counterintuitive but reflect the AI's interpretation

Command Line Arguments

BHCLI supports extensive command line configuration. Most settings can also be configured via environment variables or the config file.

Authentication and Profile

-u, --username <USERNAME>
    Set your username
    Environment: BHC_USERNAME

-p, --password <PASSWORD>
    Set your password
    Environment: BHC_PASSWORD

-c, --profile <PROFILE>
    Select configuration profile (default: "default")
    Profiles are stored in ~/.config/bhcli/bhcli.toml

--session <SESSION>
    Use an existing session ID to skip login
    Useful for reconnecting without re-authenticating

Connection and Network

--url <URL>
    Override the default chat server URL
    Example: --url "http://example.onion"

--page-php <PAGE>
    Override chat page filename (default: chat.php)
    Some servers use different page names

-s, --socks-proxy-url <URL>
    SOCKS proxy URL for Tor connection
    Default: socks5h://127.0.0.1:9050
    Environment: BHC_PROXY_URL

--no-proxy
    Disable proxy usage entirely
    Warning: Not recommended for .onion addresses

-r, --refresh-rate <SECONDS>
    Message refresh rate in seconds (default: 5)
    Lower = more responsive, higher = less bandwidth
    Environment: BHC_REFRESH_RATE

--datetime-fmt <FORMAT>
    Override datetime format string
    Uses standard strftime format

--members-tag <TAG>
    Override members tag format
    For custom chat server configurations

Display and Behavior

-g, --guest-color <COLOR>
    Set guest color theme
    Accepts color names or hex codes

-m, --manual-captcha
    Enable manual captcha solving mode
    Shows captcha and waits for your input
    Environment: BHC_MANUAL_CAPTCHA

--sxiv
    Enable sxiv image viewer integration
    Opens downloaded images in sxiv automatically

Bot System

--bot <NAME>
    Enable background bot with specified name
    Bot uses same credentials as main client
    Example: --bot Assistant

--bot-admins <USER1,USER2>
    Comma-separated list of bot administrators
    Only these users can issue admin commands
    Example: --bot-admins alice,bob,charlie

--bot-data-dir <PATH>
    Custom directory for bot data storage
    Default: bot_data/{botname}
    Example: --bot-data-dir /var/bhcli/bots

External Integrations

--dkf-api-key <KEY>
    DKF API key for notifications
    Enables DKF chat notifications
    Environment: DKF_API_KEY

--dnmx-username <USERNAME>
    DNMX email username for mail notifications
    Environment: DNMX_USERNAME

--dnmx-password <PASSWORD>
    DNMX email password
    Environment: DNMX_PASSWORD

Advanced Options

-d, --dan
    Enable special DAN mode features
    Internal use, not generally needed

--keepalive-send-to <TARGET>
    Override keepalive message target (default: "0")
    Used to prevent timeout on some servers

Usage Examples

# Basic usage with credentials
bhcli -u myusername -p mypassword

# Use a specific profile
bhcli -c myprofile

# Connect through custom Tor port
bhcli -s socks5h://127.0.0.1:9150

# Direct connection (clearnet only!)
bhcli --no-proxy --url "http://clearnet-chat.com"

# Fast refresh rate for active monitoring
bhcli -r 2

# Run with bot and specific admins
bhcli --bot Assistant --bot-admins alice,bob

# Manual captcha solving
bhcli -m

# Using environment variables
export BHC_USERNAME="myuser"
export BHC_PASSWORD="mypass"
export BHC_PROXY_URL="socks5h://127.0.0.1:9050"
export OPENAI_API_KEY="sk-..."
bhcli

Configuration Files

Config File Location

BHCLI uses confy for configuration management. The config file is automatically created on first run.

Linux/macOS: ~/.config/bhcli/bhcli.toml Windows: C:\Users\<username>\AppData\Roaming\bhcli\config\bhcli.toml

Profile Configuration

Store multiple profiles for different accounts or servers:

[profiles]

[profiles.default]
username = "yourusername"
password = "yourpassword"
# Optional: set master/alt accounts (members+ only)
alt_account = "YourAlt"
master_account = "YourMain"

[profiles.work]
username = "workaccount"
password = "differentpassword"

[profiles.bhc]
username = "bhcuser"
password = "bhcpass"

[profiles.poppooeb]
username = "pbuser"
password = "pbpass"

Switch profiles with bhcli -c profile_name

Custom Commands

Create personal command shortcuts that work like aliases:

[commands]

# Simple text replacements
hello = "hey everyone, how's it going?"
afk = "stepping away, ping me if needed"
brb = "be right back"

# Common responses
rules = "1. Be respectful 2. No spam 3. Stay anonymous 4. Have fun"
help = "Need help? Check the docs or ask the community"

# Role-specific (for members/mods)
warn = "This is your warning @{}, next offense will be a kick"
welcome = "Welcome to the chat! Read !rules to get started"

# Technical
status = "System status: All services operational"
links = "Resources: GitHub: ... | Docs: ... | Mirror: ..."

Use custom commands by prefixing with !:

!hello
!rules
!warn username

Filters and Moderation

Configure automatic filters (members+ feature):

# Ban users (fuzzy match)
bad_usernames = ["spammer1", "troll2", "badactor"]

# Ban exact usernames only
bad_exact_usernames = ["ExactSpammer", "Exact_Troll"]

# Filter messages containing these terms
bad_messages = ["spam text", "buy now", "click here"]

# Allowlist (bypass all filters)
allowlist = ["trusteduser1", "admin2"]

These can also be managed via commands:


ChatOps Commands

BHCLI includes 30+ developer-focused slash commands. All commands are available in-chat by typing /command.

Documentation and Lookup

`/help [command]` Show all available ChatOps commands or detailed help for a specific command.

/help
/help github
/help hash

`/man <command>` Display system manual pages for commands.

/man curl
/man grep
/man ssh

`/doc <language> <term>` Language-specific documentation lookup.

Supported languages: rust, python, javascript, go, java, cpp, ruby, php

/doc rust HashMap
/doc python dict
/doc javascript Promise

`/explain <concept>` AI-powered explanation of programming concepts (requires OPENAIAPIKEY).

/explain recursion
/explain async/await
/explain blockchain

`/cheat <tool>` Quick reference cheatsheets for common tools.

/cheat vim
/cheat git
/cheat tmux

`/stackoverflow <query>` Search Stack Overflow for programming questions.

/stackoverflow rust error handling
/stackoverflow python list comprehension

`/ref <language>` Quick access to language reference documentation.

/ref rust
/ref python
/ref javascript

Tooling and Utilities

`/hash <algorithm> <text>` Generate cryptographic hashes.

Algorithms: md5, sha1, sha256, sha512

/hash sha256 hello world
/hash md5 test data
/hash sha512 secret message

`/uuid` Generate a random UUID v4.

/uuid

`/base64 <encode|decode> <text>` Base64 encoding and decoding.

/base64 encode "hello world"
/base64 decode "aGVsbG8gd29ybGQ="

`/regex <pattern> <text>` Test regular expressions and see matches.

/regex "\d+" "abc 123 def 456"
/regex "^[a-z]+" "hello123world"

`/whois <domain>` Domain WHOIS lookup for registration information.

/whois github.com
/whois example.org

`/dig <domain>` DNS record lookup and resolution.

/dig google.com
/dig example.com A
/dig github.com MX

`/ipinfo <ip>` Get detailed information about IP addresses.

/ipinfo 8.8.8.8
/ipinfo 1.1.1.1

`/rand <min> <max>` Generate random numbers within range.

/rand 1 100
/rand 0 1
/rand 100 1000

`/time` Display current timestamp and timezone information.

/time

Chat Features

`/chatlink <message_id>` Create shareable links to specific chat messages.

/chatlink 12345

`/quote <user> <message>` Quote and reference messages from other users.

/quote alice "that's a great idea"
/quote bob "I disagree with that approach"

`/rooms` List all available chat rooms and their status.

/rooms

`/whereis <user>` Find which rooms a user is currently in.

/whereis alice
/whereis bob

AI Integration

All AI commands require OPENAI_API_KEY environment variable.

`/summarize <text>` AI-powered text summarization.

/summarize "long text here..."

`/translate <language> <text>` Translate text to specified language.

Supports 100+ languages.

/translate spanish "Hello, how are you?"
/translate french "Good morning"
/translate german "Thank you very much"

`/detect <text>` Detect language of text with confidence score.

/detect "Bonjour, comment allez-vous?"

`/sentiment <text>` Analyze sentiment of text (positive/negative/neutral).

/sentiment "This is amazing!"
/sentiment "I'm not sure about this"

`/atmosphere` Analyze current chat atmosphere and mood.

/atmosphere

`/modcheck <message>` Test moderation system on a message.

/modcheck "potentially problematic content"

`/fix <code>` Get AI suggestions for fixing code issues.

/fix "fn main() { println!(x) }"

`/review <code>` AI-powered code quality review and suggestions.

/review "def factorial(n): return n * factorial(n-1)"

GitHub and Package Management

`/github <user/repo> [subcommand]` (alias: /gh) Get repository information and links.

/github rust-lang/rust              # Basic repo info
/github microsoft/vscode issues     # Link to issues
/github torvalds/linux latest       # Latest release
/github user/repo file src/main.rs  # Link to specific file

`/gist <code>` Create GitHub Gists (requires GitHub CLI authentication).

/gist "console.log('hello');"

`/crates <crate_name>` Rust crate information from crates.io.

/crates serde
/crates tokio
/crates reqwest

`/npm <package_name>` NPM package information and installation commands.

/npm express
/npm react
/npm axios

`/pip <package_name>` (alias: /pypi) Python package info from PyPI.

/pip requests
/pip django
/pip numpy

Network Diagnostics

`/ping <host>` Test network connectivity and response times.

/ping google.com
/ping 8.8.8.8

`/traceroute <host>` Trace network path to destination.

/traceroute google.com

`/nslookup <domain>` DNS name resolution and record lookup.

/nslookup github.com

`/netstat` Display active network connections and listening ports.

/netstat

`/portscan <host> <port_range>` Scan ports on a host (use responsibly).

/portscan localhost 80-100

`/headers <url>` Show HTTP headers for a URL.

/headers https://example.com

`/curl <url>` Fetch URL content via curl.

/curl https://api.github.com

`/ssl <domain>` Check SSL certificate information.

/ssl github.com
/ssl google.com

`/torcheck` Check if you're connected through Tor.

/torcheck

Miscellaneous

`/ascii <text>` Convert text to ASCII art.

/ascii BHCLI
/ascii Hello

`/fortune` Display random fortune/quote.

/fortune

`/motd` Show message of the day.

/motd

`/afk [message]` Set away from keyboard status.

/afk
/afk "lunch break"

`/alias <name> <command>` Create personal command aliases.

/alias list                    # Show all aliases
/alias gh "/github"           # Create alias
/alias remove gh              # Remove alias

`/version` Display BHCLI version and system information.

/version

Command Permissions

Commands respect user role hierarchy:

Some commands (like /gist) require external authentication (GitHub CLI).


Keyboard Shortcuts

BHCLI supports extensive keyboard navigation and shortcuts.

Message Navigation

j               Move down one message
k               Move up one message
J               Jump down 5 messages
K               Jump up 5 messages
gg              Jump to top message
G               Jump to bottom message (latest)

Down arrow      Move down one message
Up arrow        Move up one message
Page Down       Scroll down one page
Page Up         Scroll up one page
ctrl+d          Scroll down one page
ctrl+u          Scroll up one page

Quick Actions

t               Tag author of selected message (@username)
p               PM author of selected message (/pm username)
y               Copy selected message to clipboard
Y (shift+y)     Copy first link in message
d               Download embedded file
D (shift+d)     Download and open file with xdg-open

Enter           Start typing in input box
Escape          Exit input mode back to navigation

View Toggles

m               Toggle sound notifications (mute/unmute)
G (shift+g)     Toggle guest view (hide members/PM)
M (shift+m)     Toggle members view (hide guests/PM)
ctrl+h          Toggle hidden messages view
Backspace       Hide selected message

Input Editing (When focused on input box)

ctrl+a          Move cursor to start of line
ctrl+e          Move cursor to end of line
ctrl+f          Move cursor forward one word
ctrl+b          Move cursor backward one word
ctrl+l          Toggle multiline input mode

ctrl+.          Open external editor (nvim/vim/nano)
ctrl+x          Open external editor (alternative)
ctrl+o          Open external editor (alternative)

Up arrow        Navigate command history (previous)
Down arrow      Navigate command history (next)
Tab             Autocomplete username

ctrl+w          Delete word backward
ctrl+u          Delete from cursor to start of line
ctrl+k          Delete from cursor to end of line

Multiline Input Mode

When multiline mode is enabled (ctrl+l):

Enter           Insert newline (not send)
ctrl+Enter      Send message
ctrl+l          Toggle back to single-line mode
Escape          Exit to normal mode
Up/Down         Navigate command history

Moderation Shortcuts (Members+ only)

ctrl+k          Prefill kick command for selected message
                If master account set: /pm <master> #kick username
                Otherwise: /kick username

ctrl+b          Prefill ban command for selected message
                If master account set: /pm <master> #ban username
                Otherwise: /ban username

ctrl+a          Prefill members group message
                If master account set: /pm <master> /m
                Otherwise: /m

ctrl+w          Send warning message (!warn username)

Bot System

BHCLI includes a powerful background bot system that runs alongside your main client.

Starting a Bot

# Basic bot
./bhcli --bot BotName

# Bot with admin users
./bhcli --bot Assistant --bot-admins alice,bob,charlie

# Custom data directory
./bhcli --bot Assistant --bot-data-dir /var/bhcli/bots

The bot uses the same credentials as your main client. It connects independently and maintains its own session.

Bot Commands

Interact with the bot by mentioning it in chat. Only designated admins can use most commands.

`@BotName help` List all available bot commands.

`@BotName stats <username>` View detailed statistics for a user.

Shows:

@Assistant stats alice

`@BotName recall <time>` Find messages from a specific time.

Time formats:

@Assistant recall 14:30
@Assistant recall 09:15:30
@Assistant recall "2 hours ago"

`@BotName search <query>` Search message history for content.

Supports:

@Assistant search "rust error"
@Assistant search bitcoin

`@BotName export <username> <days>` Export a user's messages to JSON/CSV.

@Assistant export alice 7
@Assistant export bob 30
@Assistant export charlie 1

Files are saved to bot_data/{botname}/exports/

`@BotName restore <message_id>` Restore a deleted message from bot memory.

@Assistant restore 12345

`@BotName summary <hours>` Generate chat activity summary.

@Assistant summary 24
@Assistant summary 168   # Last week

`@BotName users` List current online users.

@Assistant users

`@BotName top <metric>` Show top users by various metrics.

Metrics:

@Assistant top messages
@Assistant top active
@Assistant top words

`@BotName when <username>` Show when a user was last seen.

@Assistant when alice

`@BotName active` Show currently active users and their activity levels.

@Assistant active

Bot Data Storage

Bot data is stored in bot_data/{botname}/:

bot_data/
└── BotName/
    ├── message_history.json    # Complete chat history
    ├── user_stats.json         # User statistics database
    └── exports/                # Exported data files
        ├── alice_20250109.json
        └── bob_20250109.csv

All data is stored locally and never leaves your machine.

Bot Features

Perfect Memory Bots remember every message, even after restarts. Chat history persists indefinitely.

User Analytics Comprehensive statistics including:

Message Recovery Recover deleted messages from bot memory. Useful for accident prevention and moderation.

Data Export Generate research-ready archives:

AI Integration When OPENAI_API_KEY is set, bots gain:

Bot Permissions

Most bot commands require admin status. Configure admins when starting:

./bhcli --bot Assistant --bot-admins alice,bob

Non-admin users can:

Admins can:


AI Features

BHCLI integrates OpenAI for advanced capabilities. Set OPENAI_API_KEY to enable AI features.

AI Modes

Control how AI responds in chat:

/ai off          # Disable AI completely
/ai mod          # Moderation only (no replies)
/ai reply all    # Reply to all messages + moderation
/ai reply ping   # Reply only when mentioned + moderation

Current mode is saved to your profile.

Moderation System

AI-powered content moderation for guest messages (members/staff/admins are exempt).

Strictness Levels:

/ai strict       # Aggressive filtering, low tolerance
/ai balanced     # Moderate filtering (default)
/ai lenient      # Relaxed filtering, high tolerance

How it works:

  1. Generate summaries
  2. Generate summaries
  3. Generate summaries
  4. Generate summaries

Actions:

Testing moderation:

/check ai                    # Check AI system status
/check mod "test message"    # Test moderation on sample text

Moderation Logging

Enable logging of moderation decisions:

/modlog on       # Enable mod logs
/modlog off      # Disable mod logs

Logs are sent to admin channel (@0) and include:

Translation

Real-time translation across 100+ languages:

/translate spanish "Hello, how are you?"
/translate french "Good morning everyone"
/translate german "Thank you for your help"

Auto-detection:

/detect "Bonjour tout le monde"
# Output: Detected: French (confidence: 0.95)

Translate-shell fallback if OpenAI unavailable (requires translate-shell package).

Sentiment Analysis

Analyze emotional tone of messages:

/sentiment "This is amazing, I love it!"
# Output: Positive (confidence: 0.89)

/sentiment "I'm not sure about this approach"
# Output: Neutral (confidence: 0.72)

Chat atmosphere:

/atmosphere
# Analyzes recent messages and provides mood summary

Code Assistance

Fix broken code:

/fix "fn main() { println!(x) }"
# Suggests: Add missing variable declaration

Code review:

/review "def factorial(n): return n * factorial(n-1)"
# Provides: Missing base case, will cause infinite recursion

Explanation:

/explain "What is a closure in Rust?"
# Detailed explanation of Rust closures

AI Configuration

AI behavior is controlled via:

  1. Username
  2. Username
  3. Username

Privacy note: AI features send messages to OpenAI API. Only enabled when explicitly configured.


Moderation System

Comprehensive moderation tools for members, staff, and admins.

Basic Moderation

Kick user:

/kick username reason
/k username reason      # Shortcut

Keyboard shortcut: ctrl+k on selected message

Ban user (fuzzy match):

/ban username

Keyboard shortcut: ctrl+b on selected message

Ban exact username:

/ban "exact username"

Warning:

!warn username

Keyboard shortcut: ctrl+w

Sends: "This is your warning @username, will be kicked next !rules"

Filter Management

Add message filter:

/filter spam text here

Automatically kicks any guest who posts messages containing "spam text here".

Remove filter:

/unfilter spam text here

List filters:

/filterlist

Ban Management

Unban user:

/unban username

List banned usernames:

/banlist

List exact banned usernames:

/banexactlist

Message Deletion

Delete last message:

/dl

Delete last N messages:

/dl5     # Delete last 5
/dl10    # Delete last 10

Delete all your messages:

/dall

Allowlist System

Add trusted users to allowlist (bypass all filters):

Edit ~/.config/bhcli/bhcli.toml:

allowlist = ["trusteduser1", "admin2", "moderator3"]

Allowlisted users:

Master/Alt Account System (Dasho-specific)

Link alt and master accounts for command delegation:

/set alt AltAccountName
/set master MasterAccountName

When configured:

This allows alt accounts to delegate moderation to master account.

Moderation Best Practices

  1. ctrl+a sends: /pm <master> /m
  2. ctrl+a sends: /pm <master> /m
  3. ctrl+a sends: /pm <master> /m
  4. ctrl+a sends: /pm <master> /m
  5. ctrl+a sends: /pm <master> /m

Custom Commands

Create personal shortcuts for frequently used messages.

Creating Commands

Edit ~/.config/bhcli/bhcli.toml:

[commands]

hello = "hey everyone, how's it going?"
afk = "stepping away for a bit, ping me if needed"
brb = "be right back in 5"
rules = "1. Be cool 2. No spam 3. Stay anonymous"

Using Commands

Prefix with ! in chat:

!hello
!afk
!rules

The command expands to its full text before sending.

Advanced Examples

Variables (manual substitution):

warn = "This is your warning @{}, next offense will be kicked"

Usage: Edit the message after typing !warn to insert username.

Long messages:

welcome = """
Welcome to Black Hat Chat!

Rules:
1. Be respectful
2. No spam or flooding
3. Keep it legal
4. Stay anonymous

Need help? Type /help for commands.
"""

Technical responses:

rust_help = "Rust resources: https://doc.rust-lang.org | https://rust-lang.github.io/async-book/"
tor_setup = "Tor setup guide: https://... | Verify: https://check.torproject.org"

Command Tips

  1. ctrl+a sends: /pm <master> /m
  2. ctrl+a sends: /pm <master> /m
  3. ctrl+a sends: /pm <master> /m
  4. ctrl+a sends: /pm <master> /m
  5. ctrl+a sends: /pm <master> /m

Advanced Features

External Editor Integration

Open nvim/vim/nano for composing long messages:

ctrl+.    or    ctrl+x    or    ctrl+o

How it works:

  1. ctrl+a sends: /pm <master> /m
  2. ctrl+a sends: /pm <master> /m
  3. ctrl+a sends: /pm <master> /m
  4. ctrl+a sends: /pm <master> /m
  5. ctrl+a sends: /pm <master> /m

Perfect for:

Message History

Navigate previously sent messages:

Up arrow      Previous message
Down arrow    Next message

History filters by current input prefix:

File Operations

Upload:

/u /path/to/file.png @username message here
/u /path/to/file.png @members message

Download:

d          Download file in selected message
D          Download and open with xdg-open

Downloads go to current working directory.

Hidden Messages

Hide individual messages without deleting:

Backspace       Hide selected message
ctrl+H          Toggle hidden messages view

Hidden messages:

Profile Management

Switch between saved profiles:

bhcli -c default
bhcli -c work
bhcli -c bhc

Each profile maintains:

Session Persistence

Save your session to skip login next time:

After logging in, find your session ID in logs or config, then:

bhcli --session <SESSION_ID>

Useful for:

Sessions expire after inactivity (server-dependent).

Tor Configuration

Default (recommended):

bhcli -s socks5h://127.0.0.1:9050

Tor Browser Bundle:

bhcli -s socks5h://127.0.0.1:9150

Custom Tor instance:

bhcli -s socks5h://localhost:9999

Disable Tor (clearnet only!):

bhcli --no-proxy

Never use --no-proxy with .onion addresses.

Refresh Rate Tuning

Balance responsiveness vs bandwidth:

bhcli -r 2     # Very responsive (2 second refresh)
bhcli -r 5     # Balanced (default)
bhcli -r 10    # Conservative bandwidth

Lower = more responsive but more bandwidth and server load.

Logging

Logs are written to bhcli.log in current directory.

Contains:

Useful for troubleshooting.


Troubleshooting

Connection Issues

Cannot connect:

Timeout errors:

Captcha Problems

Cannot see captcha:

Captcha fails repeatedly:

Audio Issues

No sound:

Audio errors:

Performance Issues

High CPU usage:

High memory:

Configuration Issues

Config not found:

Profile not working:


Tips and Tricks

Power User Shortcuts

Combine features for maximum efficiency:

# Quick moderation workflow
# 1. Navigate to bad message (j/k)
# 2. Kick user (ctrl+k)
# 3. Edit reason, send
# 4. Add to ban list manually if needed

# Fast PM responses
# 1. Select message (j/k)
# 2. Start PM (p)
# 3. Type response
# 4. Send

# Efficient filtering
# 1. Add filter (/filter spam)
# 2. Save to config (automatic)
# 3. Applies to all future messages

Workflow Optimization

For moderators:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log
  5. Look for errors in bhcli.log

For developers:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log

For power users:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log

Privacy and Security

Best practices:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log
  5. Look for errors in bhcli.log

Operational security:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log
  5. Look for errors in bhcli.log

Community Guidelines

Be a good citizen:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log
  5. Look for errors in bhcli.log

Technical etiquette:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log
  5. Look for errors in bhcli.log

Getting Help

In order of preference:

  1. Look for errors in bhcli.log
  2. Look for errors in bhcli.log
  3. Look for errors in bhcli.log
  4. Look for errors in bhcli.log
  5. Look for errors in bhcli.log
  6. Look for errors in bhcli.log

Before asking:

Most issues are configuration-related. Check your config file, environment variables, and command line arguments.


Built for anonymity, optimized for speed, designed for developers.

Stay safe, stay anonymous, stay paranoid.