Prerequisites

Before installing HoxCore, ensure you have the following:

  • Python 3.8 or higher - HoxCore is built with Python
  • pip - Python package installer (usually comes with Python)
  • Git - Required for version control features
  • Terminal/Command Line - Basic familiarity with command-line interfaces

💡 Check Your Python Version

python --version
# or
python3 --version

Installation

Install HoxCore using pip, Python's package manager:

Standard Installation

pip install hxc

Install from Source

If you want to install from the source repository:

# Clone the repository
git clone https://github.com/yourusername/hoxcore.git
cd hoxcore

# Install in development mode
pip install -e .

Install with Development Dependencies

For contributors who want to run tests and development tools:

pip install hxc[dev]

⚠️ Virtual Environment Recommended

It's recommended to use a virtual environment to avoid conflicts with other Python packages:

# Create virtual environment
python -m venv hxc-env

# Activate (Linux/Mac)
source hxc-env/bin/activate

# Activate (Windows)
hxc-env\Scripts\activate

# Install HoxCore
pip install hxc

Verify Installation

After installation, verify that HoxCore is correctly installed:

# Check version
hxc --version

# View help
hxc --help

You should see output similar to:

hxc version 0.1.0

✅ Installation Successful

If you see the version number, HoxCore is installed and ready to use!

Initialize a Registry

A registry is the central repository where HoxCore stores all your project metadata. Think of it as a Git repository for your project definitions.

Create a New Registry

# Initialize in a new directory
hxc init my-registry

# Or initialize in the current directory
hxc init .

This command creates a new registry with the following structure:

my-registry/
├── .git/              # Git repository
├── config.yml         # Registry configuration
├── programs/          # Program definitions
├── projects/          # Project definitions
├── missions/          # Mission definitions
├── actions/           # Action definitions
├── templates/         # Custom templates
└── .hxc/             # Internal HoxCore data
    └── index.db      # Entity index

💡 Registry as Git Repository

Every registry is automatically initialized as a Git repository. This provides:

  • Version history for all changes
  • Branching and merging capabilities
  • Collaboration through remote repositories
  • Full auditability of project evolution

Registry Structure

Understanding the registry structure helps you navigate and manage your entities effectively.

Directory Organization

Directory Purpose Entity Type
programs/ Abstract containers grouping related initiatives Program
projects/ Object-like efforts with concrete outputs Project
missions/ Event-like efforts with clear culmination Mission
actions/ Ongoing activities without defined end Action
templates/ Custom scaffolding templates Template

Configuration File

The config.yml file contains registry-wide settings:

# config.yml
registry:
  name: my-registry
  version: 0.1.0
  created: 2024-01-01T00:00:00Z

settings:
  default_category: general
  auto_commit: true
  index_on_change: true

integrations:
  github:
    enabled: false
  azure_devops:
    enabled: false

Create Your First Project

Let's create your first project in the registry:

Basic Project Creation

hxc create project \
  --title "My First Project" \
  --description "Learning HoxCore basics" \
  --category software.dev/cli-tool

This creates a new project with:

  • Auto-generated UID (e.g., proj_abc123def456)
  • Status set to active by default
  • Current date as start date
  • YAML file in projects/ directory

Project with More Details

hxc create project \
  --title "AI-Powered CLI Tool" \
  --description "Building an intelligent command-line interface" \
  --category software.dev/cli-tool \
  --id P-001 \
  --tags cli,ai,python \
  --due-date 2024-12-31

Interactive Creation

You can also create projects interactively:

hxc create project --interactive

✅ Project Created

After creation, you'll see a confirmation message with the project's UID and location in the registry.

List Entities

View all entities in your registry:

List All Projects

hxc list projects

Output example:

UID                    ID      Title                    Status    Category
proj_abc123def456      P-001   My First Project         active    software.dev/cli-tool
proj_xyz789ghi012      P-002   AI-Powered CLI Tool      active    software.dev/cli-tool

List Other Entity Types

# List programs
hxc list programs

# List missions
hxc list missions

# List actions
hxc list actions

# List all entities
hxc list all

Filter by Status

# List only active projects
hxc list projects --status active

# List completed projects
hxc list projects --status completed

Filter by Category

hxc list projects --category software.dev

View Entity Details

Display detailed information about a specific entity:

By UID

hxc show proj_abc123def456

By ID

hxc show P-001

Output example:

UID: proj_abc123def456
ID: P-001
Type: project
Title: My First Project
Description: Learning HoxCore basics
Status: active
Category: software.dev/cli-tool
Tags: [cli, learning, tutorial]
Created: 2024-01-01T10:00:00Z
Modified: 2024-01-01T10:00:00Z
Start Date: 2024-01-01
Due Date: 2024-12-31

Repositories: None
Storage: None
Tools: None
Models: None

View Raw YAML

hxc show P-001 --raw

Update an Entity

Modify existing entity properties:

Update Single Field

# Update status
hxc update P-001 --status completed

# Update title
hxc update P-001 --title "Updated Project Title"

# Add tags
hxc update P-001 --add-tags production,deployed

Update Multiple Fields

hxc update P-001 \
  --status completed \
  --completion-date 2024-06-30 \
  --add-tags finished,successful

Edit in Text Editor

# Opens the YAML file in your default editor
hxc update P-001 --edit

⚠️ Immutable UIDs

The UID field is immutable and cannot be changed. This ensures referential integrity across the registry.

Query Entities

Perform advanced searches across your registry:

Query by Tags

# Find all entities with 'ai' tag
hxc query --tags ai

# Find entities with multiple tags (AND)
hxc query --tags ai,cli,python

Query by Date Range

# Projects starting in 2024
hxc query projects --start-after 2024-01-01

# Projects due before end of year
hxc query projects --due-before 2024-12-31

Complex Queries

# Active software projects with AI tag
hxc query projects \
  --status active \
  --category software.dev \
  --tags ai

Full-Text Search

# Search in title and description
hxc query --search "machine learning"

Set Registry Path

Configure HoxCore to use a specific registry by default:

Set Default Registry

hxc registry path --set /path/to/my-registry

View Current Registry

hxc registry path

Use Different Registry Temporarily

# Use --registry flag for one-time operations
hxc list projects --registry /path/to/other-registry

💡 Registry Discovery

If no registry path is set, HoxCore will search for a registry in:

  1. Current directory
  2. Parent directories (up to root)
  3. User's home directory (~/.hxc/registry)

Next Steps

Now that you've learned the basics, explore more advanced features:

📚 Core Concepts

Understand the fundamental concepts behind HoxCore's design and architecture.

Learn Core Concepts →

📖 CLI Reference

Explore all available commands and their options in detail.

View CLI Reference →

📝 Templates

Learn how to create and use templates for project scaffolding.

Explore Templates →

🔌 Integrations

Connect HoxCore with GitHub, Azure DevOps, and other tools.

Setup Integrations →

🤖 AI Features

Integrate LLM models and knowledge bases with your projects.

Discover AI Features →

💬 Community

Join discussions, report issues, and contribute to HoxCore.

Join Community →

Quick Reference

Common commands for quick access:

Command Description
hxc init <path> Initialize a new registry
hxc create project Create a new project
hxc list projects List all projects
hxc show <id> Show entity details
hxc update <id> Update an entity
hxc delete <id> Delete an entity
hxc query --tags <tag> Query by tags
hxc registry path View/set registry path
hxc --help Show help information