Skip to content

Othentic-Labs/horus-avs

 
 

Repository files navigation

Horus Security Monitoring Agent

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.

Table of Contents

Prerequisites

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)

Installation Guide

Installing mise

mise is a unified runtime version manager (similar to asdf, nvm, or pyenv) that helps manage multiple language runtimes like Node.js and Python.

macOS

Using Homebrew:

brew install mise

Linux/WSL

curl https://mise.run | sh

After installation, add mise to your shell:

echo 'eval "$(mise activate bash)"' >> ~/.bashrc
# Or for zsh
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

Restart your terminal or run source ~/.bashrc (or ~/.zshrc) to apply changes.

Installing Poetry

Poetry is a tool for dependency management and packaging in Python. It manages project dependencies, virtual environments, and package building.

Install Poetry

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"' >> ~/.zshrc

Restart your terminal or run source ~/.bashrc (or ~/.zshrc) to apply changes.

Setting up the Project

  1. Clone the repository:
git clone https://github.com/easonchai/horus.git
cd horus
  1. Let mise install required runtimes (Node.js, Python):
mise install

This will automatically install the exact versions of Node.js and Python specified in the .mise.toml configuration file.

  1. Install Node.js dependencies:
mise exec -- npm install -g pnpm
mise exec -- pnpm install

This installs pnpm (a fast, disk space efficient package manager) and uses it to install the project's Node.js dependencies.

  1. Install Python dependencies for the Horus package:
mise exec -- pnpm install:horus
  1. Install TypeScript dependencies for the Horus Demo package (if needed):
mise exec -- pnpm install:demo

Project Structure

This 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.

Running the Application

To run the Horus security monitoring agent:

mise exec -- pnpm dev:horus

To run the Horus Demo application:

mise exec -- pnpm dev

To run all packages:

mise exec -- pnpm dev:all

Development Commands

Here 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:original

Troubleshooting

Common Issues

"Command not found" after installation

If 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/mise or ~/.poetry/bin/poetry)

Node.js version conflicts

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.toml

Python dependency issues

If you encounter Python dependency issues:

# Clean and reinstall dependencies
mise exec -- poetry lock --no-update
mise exec -- poetry install

Need to update pnpm

If you need to update pnpm to the latest version:

mise exec -- npm add -g pnpm@latest

For additional help, please open an issue on our GitHub repository.

About

Horus - AI Agent For Wallet Security

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 58.1%
  • Python 25.3%
  • TypeScript 15.4%
  • Other 1.2%