Cyx
LLM-powered terminal tool for security command lookup. Supports Perplexity, Groq, and Ollama.
Features
- Command-first output with code blocks
- Learn mode for detailed explanations
- Smart cache with ONNX semantic search
- Local LLM support via Ollama
- Source attribution and links
Quick Start
# Install with one command
|
# Or build from source
# First time setup
# Use
Installation
Quick Install (Recommended)
One-line installer for Linux/macOS:
|
This will:
- Download the latest release for your platform
- Install to
~/.local/bin(or custom location viaINSTALL_DIR) - Handle the ONNX Runtime library automatically
- Add to PATH if needed
- Run the setup wizard
Custom installation directory:
INSTALL_DIR=/usr/local/bin |
Manual Installation
Note: Pre-built binaries will be available in GitHub Releases after tagging a new version (see below for instructions).
Download the latest release from Releases page and run:
# Extract the archive
# Run the installer script
Or manually copy both files:
Important: The cyx binary requires the ONNX Runtime library. Both files must be kept together in the same directory.
Build from Source
Prerequisites
- Rust 1.70 or higher
- API key from Perplexity or Groq
Quick Build
Using Cargo Install
# Clone and navigate to the repository
# Install the binary
# Run setup - it will auto-detect and fix ONNX library issues
Auto-Fix Feature: When you run cyx setup or any command, cyx will automatically detect if the ONNX Runtime library is missing and attempt to fix it by:
- Locating the library in your cargo build cache
- Copying it to the binary directory
- Providing manual instructions if auto-fix fails
Manual Copy (if auto-fix doesn't work):
INSTALL_DIR=
Makefile Commands
Initial Configuration
After installation, run the interactive setup wizard:
This creates ~/.config/cyx/config.toml with your API key (stored with 600 permissions).
Usage
One-Shot Queries
# Quick command lookup
# Learn mode with detailed explanations
CLI Options
-l, --learn Educational mode with detailed breakdowns
-q, --quiet Minimal output (response only, no formatting)
-v, --verbose Detailed progress information
--no-tty Disable TTY features for scripting
Configuration
Config file: ~/.config/cyx/config.toml
Output Examples
Normal Mode
╭─── RESPONSE ──────────────────────────────────────────────
│ ```bash
│ nmap -sS <target>
│ ```
│ TCP SYN stealth scan - doesn't complete handshake. Requires root.
╰──────────────────────────────────────────────────────────
[*] SOURCES
───────────────────────────────────────
Provider: Perplexity (sonar-pro)
Search: Yes (performed web search)
Links:
- nmap documentation: https://nmap.org/book/synscan.html
- TCP protocol (RFC 793): https://www.ietf.org/rfc/rfc793.txt
Learn Mode
Provides detailed explanations with flag breakdowns, protocol details, and alternatives.
Quiet Mode
Troubleshooting
Error: libonnxruntime.so.1.16.0: cannot open shared object file
This error means the ONNX Runtime library is not in the library search path.
Automatic Fix:
Simply run:
Cyx will automatically detect the missing library and attempt to fix it by:
- Searching for the library in your cargo build cache
- Copying it to the correct location
- Providing manual instructions if needed
Manual Solutions:
If auto-fix doesn't work:
-
For cargo install users:
# Copy from build cache INSTALL_DIR= -
For release downloads: Extract the full archive and ensure both files are together:
# Both files should be in the same directory # Should show: cyx and libonnxruntime.so.1.16.0 (or .dylib on macOS) -
System-wide installation:
For more detailed troubleshooting, see BUILDING.md.
Creating a Release
To create a new release with automated binary builds for all platforms:
# Update version in Cargo.toml, then commit
# Create and push a version tag
This triggers the GitHub Actions workflow which will:
- Build binaries for Linux (x86_64, aarch64) and macOS (x86_64, aarch64)
- Bundle each binary with the ONNX Runtime library
- Include the install.sh script in release packages
- Create a GitHub Release with all artifacts
- Generate SHA256 checksums for verification
Technical Details
Security
- API keys stored with 600 permissions in
~/.config/cyx/config.toml - Read-only operation - provides commands but never executes them
- Timeout protection - all API calls timeout after 120 seconds
- Local-first - all sensitive data remains on your machine
System Prompts
Normal mode prioritizes executable commands with brief explanations. Learn mode provides detailed educational content with examples and alternatives.
Disclaimer
For authorized security testing, educational purposes, and defensive research only.
This tool is designed for:
- Professional penetration testers with written authorization
- Security students in controlled lab environments
- Capture The Flag (CTF) competitions
- Defensive security and threat analysis
Always obtain explicit permission before testing systems you don't own.
License
MIT License - See LICENSE for details.