CLIO Dependencies

May 30, 2026 ยท View on GitHub

Philosophy

CLIO is designed to work with minimal dependencies using standard Unix tools. We deliberately avoid:

  • Heavy framework dependencies
  • Node.js/npm/JavaScript ecosystems
  • Python/pip dependencies
  • CPAN modules (zero external Perl dependencies)
  • Docker-only deployment

Result: CLIO works on a clean Unix system with Perl 5.32+ installed.


Quick Verification

./check-deps

This checks Perl version, required system commands, and optional tools.


Required Dependencies

Perl 5.32 or Higher

CLIO uses zero external CPAN modules. Everything works with core modules included in Perl 5.32+.

perl -v
PlatformCommand
macOSPre-installed or brew install perl
Debian/Ubuntusudo apt install perl
RHEL/Fedorasudo dnf install perl
Arch Linuxsudo pacman -S perl

System Commands

All typically pre-installed on Unix-like systems:

CommandPurposePackage
gitVersion control operationsgit
curlHTTP requests, API calls, updatescurl
sttyTerminal mode controlcoreutils
tputTerminal capability queriesncurses-bin
tarArchive extraction for updatestar

Verify:

which git curl stty tput tar

Install if missing:

# Debian/Ubuntu
sudo apt install git curl coreutils ncurses-bin tar

# RHEL/Fedora
sudo dnf install git curl coreutils ncurses tar

# Arch Linux
sudo pacman -S git curl coreutils ncurses tar

# macOS
xcode-select --install  # Includes git; others are pre-installed

Perl Core Modules Used

No installation needed - these ship with Perl 5.32+:

ModulePurpose
JSON::PPJSON parsing (auto-upgraded to JSON::XS if available)
File::*File operations (Spec, Path, Basename, Copy, Find, Temp)
Time::HiRes, Time::PieceTime operations
Digest::MD5Checksums
EncodeUTF-8 handling
POSIXSystem interfaces, process groups
CwdDirectory operations
Getopt::LongCommand-line parsing
Term::ReadKeyTerminal input (bundled with CLIO in lib/)

Optional Performance Enhancement

ModulePurposeInstallation
JSON::XS10x faster JSON parsingcpan JSON::XS

CLIO's CLIO::Util::JSON module automatically detects and uses the fastest JSON encoder available (JSON::XS > Cpanel::JSON::XS > JSON::PP fallback).


Optional Tools

Terminal Multiplexers (Auto-Detected)

When running inside a multiplexer, CLIO executes terminal commands in a separate pane:

MultiplexerDetection
tmux$TMUX environment variable
GNU Screen$STY environment variable
Zellij$ZELLIJ_SESSION_NAME environment variable

MCP (Model Context Protocol) Support

MCP connects CLIO to external tool servers. At least one runtime is needed:

CommandPurposeInstallation
npxRun MCP servers from npmComes with Node.js
uvxRun Python-based MCP serverspip install uv
python3Run Python MCP serversUsually pre-installed

If none are found, MCP is silently disabled. See MCP.md for details.

SSH (for Remote Execution)

CommandPurpose
sshRemote system connectivity
rsyncEfficient file transfer to remotes

Required only if using the remote_execution tool. See REMOTE_EXECUTION.md.

Docker (for Container Sandbox)

Required only for clio-container sandboxed execution:

RequirementPurpose
Docker Engine or Docker DesktopContainer runtime
docker CLIContainer management

See SANDBOX.md.


Troubleshooting

"stty: command not found" or "tput: command not found"

Terminal input/output behaves incorrectly:

sudo apt install coreutils ncurses-bin  # Debian/Ubuntu
sudo dnf install coreutils ncurses      # RHEL/Fedora

"curl: command not found"

Updates, web search, and API calls fail:

sudo apt install curl  # Debian/Ubuntu
sudo dnf install curl  # RHEL/Fedora
brew install curl      # macOS

"git: command not found"

Version control operations fail:

sudo apt install git   # Debian/Ubuntu
sudo dnf install git   # RHEL/Fedora
xcode-select --install # macOS

See Also