Horus is a security monitoring tool that watches for threats and can automatically take protective actions like withdrawing funds or revoking permissions when serious threats are detected.
- Horus Security Monitoring Agent
Before you begin, make sure you have:
- A computer with macOS, Linux, or WSL on Windows
- Basic familiarity with terminal/command line
- Git installed (for cloning the repository)
mise is a unified runtime version manager (similar to asdf, nvm, or pyenv) that helps manage multiple language runtimes like Node.js and Python.
Using Homebrew:
brew install misecurl https://mise.run | shAfter installation, add mise to your shell:
echo 'eval "$(mise activate bash)"' >> ~/.bashrc
# Or for zsh
echo 'eval "$(mise activate zsh)"' >> ~/.zshrcRestart your terminal or run source ~/.bashrc (or ~/.zshrc) to apply changes.
Poetry is a tool for dependency management and packaging in Python. It manages project dependencies, virtual environments, and package building.
curl -sSL https://install.python-poetry.org | python3 -Add Poetry to your PATH:
# For bash
echo 'export PATH="$HOME/.poetry/bin:$PATH"' >> ~/.bashrc
# For zsh
echo 'export PATH="$HOME/.poetry/bin:$PATH"' >> ~/.zshrcRestart your terminal or run source ~/.bashrc (or ~/.zshrc) to apply changes.
- Clone the repository:
git clone https://github.com/easonchai/horus.git
cd horus- Let mise install required runtimes (Node.js, Python):
mise installThis will automatically install the exact versions of Node.js and Python specified in the .mise.toml configuration file.
- Install Node.js dependencies:
mise exec -- npm install -g pnpm
mise exec -- pnpm installThis installs pnpm (a fast, disk space efficient package manager) and uses it to install the project's Node.js dependencies.
- Install Python dependencies for the Horus package:
mise exec -- pnpm install:horus- Install TypeScript dependencies for the Horus Demo package (if needed):
mise exec -- pnpm install:demoThis repository is a monorepo containing multiple packages:
- horus: The main Python-based security monitoring agent
- horus-demo: A TypeScript-based demonstration package
Each package has its own README with specific instructions.
To run the Horus security monitoring agent:
mise exec -- pnpm dev:horusTo run the Horus Demo application:
mise exec -- pnpm devTo run all packages:
mise exec -- pnpm dev:allHere are some useful commands for development:
# Run tests for horus-demo
mise exec -- pnpm test
# Lint code for horus-demo
mise exec -- pnpm lint
# Build the horus-demo package
mise exec -- pnpm build
# Run the horus package
mise exec -- pnpm dev:horus
# Run the original horus development mode
mise exec -- pnpm dev:originalIf you encounter "command not found" errors after installing mise or poetry:
- Make sure you've added them to your PATH and restarted your terminal
- Check installation logs for any errors
- Try running with the full path (e.g.,
~/.mise/bin/miseor~/.poetry/bin/poetry)
If you have issues with Node.js versions:
# Verify mise is using the correct version
mise exec -- node --version
# Should match the version in .mise.tomlIf you encounter Python dependency issues:
# Clean and reinstall dependencies
mise exec -- poetry lock --no-update
mise exec -- poetry installIf you need to update pnpm to the latest version:
mise exec -- npm add -g pnpm@latestFor additional help, please open an issue on our GitHub repository.