- Implemented version checking system with update notifications - Integrated Git for fetching and downloading the latest version - Added statistics updates - Removed unused code across the project - Condensed project structure - Updated README - Cleaned up UI
🛡️ Loxide
Python/Rust/Oxide toolkit for secure, auditable, and automated Airlock agent and policy management. Designed for enterprise environments, it supports advanced policy workflows, device tracking, and terminal-based interaction.
🚀 Features
-
🔍 Fuzzy Device Search
Quickly locate devices using partial or approximate matches with wildcard support (*,?). -
📦 Batch Move Devices
Move multiple devices between groups or policies easily with multi-select and file import. -
🔄 Toggle Enforcement/Audit Policies
Seamlessly switch devices between enforcement and audit modes. -
🕵️ Device History Search
Track agent executions with configurable date ranges (1-365 days) and CSV export. -
🧰 Prepare Policies for Enforcement
Multi-step wizard to validate and stage policies before pushing to enforcement. -
💤 Find Quiet Hosts
Identify inactive devices ready for enforcement using Rust-powered analysis. -
🔐 OTP Management
Generate, revoke, and monitor one-time passwords for agents. -
📋 Server Log Viewer
Real-time server activity monitoring with DataTable display. -
🎛️ Modern TUI
Full keyboard navigation with Textual framework, toast notifications, and color-coded results.
🧭 Roadmap
-
✅ Carbon Black-style Local Approval
Enable local user approvals for policy exceptions and enforcement actions. -
📊 Audit Logging & Export
Add detailed logging and export capabilities for compliance and analysis.
📦 Installation
Prerequisites
- Python 3.10+
- Access to Airlock API
- Network access to private PyPI server
Install Dependencies
pip install -r requirements.txt
Requirements
# Core TUI
textual==6.5.0
# API and data handling
requests==2.32.5
pandas==2.3.3
numpy==2.3.4
# Database
pymongo==4.15.3
# Security
cryptography==46.0.3
keyring==25.6.0
# Utilities
python-dotenv==1.2.1
tqdm==4.67.1
urllib3==2.5.0
pyperclip==1.11.0
# Private package
--extra-index-url https://git.racooncity.org/api/packages/brotoskyj/pypi/simple/
airlock_libs==5.2.1
See also: airlock_libs
📖 Usage
python Loxide.py
Keyboard Shortcuts
| Key | Action |
|---|---|
Tab |
Navigate between elements |
Enter |
Select/Confirm |
Escape |
Go back / Cancel |
← → |
Navigate tabs |
r |
Refresh (context-dependent) |
e |
Export to CSV |
q |
Quit application |
🏗️ Architecture
Loxide/
├── Loxide.py # Main entry point
├── API.py # AirlockAPIWrapper
├── setup.py # Initialization & logging
├── configmanager.py # Config management
│
├── models/ # Data models
├── services/ # Business logic
├── utils/ # Helper functions
│
└── TUI/
├── Screens/ # Workflow screens
│ ├── policyprepworkflowscreen.py
│ ├── quietagentworkflowscreen.py
│ ├── agentmoveoperations.py
│ ├── otprevokescreen.py
│ └── executionhistoryscreen.py
│
└── Widgets/ # Reusable components
├── policyselector.py
├── multiagentselector.py
└── serverlogwidget.py
👥 Authors
- Brandon Wickline - Lead Python Developer
- James Brotosky - Lead Rust Developer
📜 License
Loxide is licensed under the GNU Affero General Public License v3.0.
You may copy, distribute, and modify the software under the terms of the AGPL-3.0 license.
Copyright (C) 2025 James Brotosky, Brandon Wickline
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
See the LICENSE file for full details, or visit
https://www.gnu.org/licenses/agpl-3.0.html