An ultra-fast and intelligent SSH session manager with Bayesian-ranked search, fuzzy matching, Kerberos support, bastion hosts, and advanced history management.
Bayesian SSH transforms your SSH experience with intelligent automation:
- Bayesian-ranked search - connections ranked by frequency, recency, and match quality
- Intelligent fuzzy search across all commands - find connections by partial names, tags, or patterns
- One-click connections to your servers
- Automatic Kerberos ticket management
- Smart bastion host routing
- Tag-based organization for easy management
- Complete connection history with statistics
- SQLite database for persistence
# Install latest release automatically (non-interactive)
curl -fsSL https://raw.githubusercontent.com/abdoufermat5/bayesian-ssh/main/install.sh | bash# Interactive installation (choose options)
curl -fsSL https://raw.githubusercontent.com/abdoufermat5/bayesian-ssh/main/install.sh | bash -s -- --interactive
# Clone and build
git clone https://github.com/abdoufermat5/bayesian-ssh.git
cd bayesian-ssh
# Build and install using Makefile
make release
make install
# Or use the script
./scripts/build_and_push.sh --release
sudo cp target/release/bayesian-ssh /usr/local/bin/# Add a server
bayesian-ssh add "My Server" server.company.com
# Connect instantly
bayesian-ssh connect "My Server"# Connect to a server (with fuzzy search)
bayesian-ssh connect "Server Name" # Exact match
bayesian-ssh connect "webprod" # Finds "web-prod-server"
bayesian-ssh connect "prod" # Shows all production servers
# Manage connections (all with fuzzy search)
bayesian-ssh edit "webprod" # Edit connection settings
bayesian-ssh show "dbprod" # Show connection details
bayesian-ssh remove "apigateway" # Remove connection
# Add new connection
bayesian-ssh add "Server Name" hostname.com
# List connections
bayesian-ssh list
# Import from SSH config
bayesian-ssh import
# Interactive TUI mode
bayesian-ssh tui # Full-screen connection browser# View session history with stats
bayesian-ssh history # Recent sessions
bayesian-ssh history -c "prod" # Filter by connection
bayesian-ssh history --days 7 --failed # Last week's failures
# Manage active sessions
bayesian-ssh close # List active sessions
bayesian-ssh close "Server" # Close specific session
bayesian-ssh close --cleanup # Clean stale sessions
bayesian-ssh close --all # Close all sessions# Create shortcuts for connections
bayesian-ssh alias add db prod-database # 'db' → 'prod-database'
bayesian-ssh alias add p1 Portail01 # Quick alias
bayesian-ssh connect db # Uses alias
bayesian-ssh alias list # Show all aliases
bayesian-ssh alias remove db # Remove alias# Use default bastion
bayesian-ssh add "Server" host.com
# Force direct connection
bayesian-ssh add "Server" host.com --no-bastion
# Custom bastion
bayesian-ssh add "Server" host.com --bastion custom-bastion.comThe app automatically creates configuration in ~/.config/bayesian-ssh/:
# View current config
bayesian-ssh config
# Set defaults (Kerberos is disabled by default, current user is used)
bayesian-ssh config --use-kerberos --default-user customuserFor comprehensive guides and advanced topics, see the docs/ folder:
- Technical Architecture - System design and architecture
- Advanced Usage - Enterprise scenarios and complex use cases
- Troubleshooting - Common issues and solutions
- Documentation Index - Complete documentation overview
See CHANGELOG.md for detailed release notes.
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under MIT. See the LICENSE file for details.