This project has been archived by its maintainers, and is no longer receiving any updates.
🌿 IvyBloom CLI
Command-line interface for Ivy Biosciences' computational biology and drug discovery platform
Accelerate your computational biology research with powerful command-line tools for protein structure prediction, drug discovery, ADMET analysis, and workflow automation.
📑 Table of Contents
- Quick Start
- Key Features
- Terminal User Interface (TUI)
- Command Reference
- Research Use Cases
- Configuration
- Development
- Documentation
- Contributing
- Support
🚀 Quick Start
Installation
# Install from PyPI
pip install ivybloom
# Or with pipx for isolated environment
pipx install ivybloom
Authentication
# Browser-based login (recommended)
ivybloom auth login --browser
# Or use API key authentication
ivybloom auth login --api-key YOUR_API_KEY
Your First Job
# Predict protein structure with ESMFold
ivybloom run esmfold protein_sequence=MKLLVLGLVGFGVGFGVGFGVGFGVGFGVGFG
# Monitor progress in real-time
ivybloom jobs status JOB_ID --follow
# List recent jobs
ivybloom jobs list --limit 10
✨ Key Features
🧬 Computational Biology Tools
| Tool | Description |
|---|---|
| ESMFold | State-of-the-art protein structure prediction |
| AlphaFold | Deep learning protein folding integration |
| REINVENT | Generative drug design and molecular optimization |
| ADMETLab3 | Comprehensive ADMET property prediction |
| ProTox3 | Toxicity assessment and safety profiling |
| AiZynthFinder | Retrosynthesis and synthesis planning |
| DeepSol | Protein solubility prediction |
| Fragment Libraries | Fragment-based drug discovery screening |
🔗 Advanced Workflows
- Job Chaining: Link multiple analyses with automatic parameter passing
- Parallel Execution: Run multiple optimizations simultaneously
- YAML Workflows: Define complex multi-step pipelines declaratively
- Dry-Run Mode: Validate workflows before execution
- Progress Tracking: Real-time status updates and result reporting
🎨 Professional Interface
- Earth-Tone Design: Biology-inspired, eye-friendly color scheme
- Rich Formatting: Progress bars, tables, spinners, and status indicators
- Multiple Formats: Output as JSON, YAML, CSV, or formatted tables
- Interactive Prompts: Guided input with validation and suggestions
- Shell Completion: Tab completion for commands and arguments
🔐 Enterprise Authentication
- Browser OAuth: Seamless "click here to login" experience with PKCE
- Device Flow: Perfect for SSH sessions and headless environments
- API Keys: Traditional authentication for CI/CD and automation
- Secure Storage: System keyring with encrypted file fallback
🖥 Terminal User Interface (TUI)
Launch the full-featured terminal UI for an interactive experience:
ivybloom tui
TUI Features
- Three-Panel Layout: Jobs list, details view, and artifact preview
- Real-Time Updates: Live job status with adaptive refresh
- Protein Visualization: ASCII/braille protein structure rendering
- Molecule Viewer: SMILES depiction and molecular preview
- Command Palette: Fuzzy search for all commands (
Ctrl+K) - Artifact Browser: Preview JSON, CSV, PDB, and more inline
- Project Switcher: Quickly switch between projects
TUI Keybindings
| Key | Action |
|---|---|
Ctrl+K |
Open command palette |
j / k |
Navigate jobs list |
l |
Follow selected job |
a |
View artifacts |
o |
Open primary artifact |
? |
Show help overlay |
q |
Quit TUI |
📋 Command Reference
Core Commands
# Authentication
ivybloom auth login --browser # Browser OAuth login
ivybloom auth status # Check authentication status
ivybloom auth logout # Clear credentials
# Jobs
ivybloom jobs list # List all jobs
ivybloom jobs status JOB_ID # Get job details
ivybloom jobs status JOB_ID --follow # Stream live updates
ivybloom jobs results JOB_ID # Get job results
ivybloom jobs cancel JOB_ID # Cancel a running job
# Tools
ivybloom tools list # List available tools
ivybloom tools info TOOL_NAME # Get tool details and parameters
ivybloom tools schema TOOL_NAME # Get JSON schema for tool
# Running Jobs
ivybloom run TOOL_NAME param=value # Run a tool with parameters
ivybloom run esmfold --help # Get help for specific tool
# Projects
ivybloom projects list # List your projects
ivybloom projects info PROJECT_ID # Get project details
# Workflows
ivybloom workflows run FILE.yaml # Execute a workflow file
ivybloom workflows validate FILE # Validate workflow syntax
# Account
ivybloom account info # View account details
ivybloom account usage # Check usage and limits
# Configuration
ivybloom config get KEY # Get config value
ivybloom config set KEY VALUE # Set config value
ivybloom config list # List all settings
ivybloom config edit # Interactive config editor
Output Formats
All listing commands support multiple output formats:
ivybloom jobs list --format json # JSON output
ivybloom jobs list --format yaml # YAML output
ivybloom jobs list --format csv # CSV output
ivybloom jobs list --format table # Rich table (default)
🔬 Research Use Cases
Protein Structure Prediction
# Single protein prediction
ivybloom run esmfold protein_sequence=MKFLILLFNILCLFPVLAADNHGVGPQGAS
# With project assignment
ivybloom run esmfold protein_sequence=MKFLILLFNILCLFPVLAADNHGVGPQGAS \
--project-id my-project
Drug Discovery Pipeline
# drug_pipeline.yaml
name: protein_to_drug_pipeline
description: End-to-end drug discovery workflow
steps:
- name: predict_structure
tool: esmfold
parameters:
protein_sequence: ${input.sequence}
- name: generate_candidates
tool: reinvent
depends_on: predict_structure
parameters:
target_structure: ${predict_structure.output.pdb_file}
num_molecules: 100
- name: filter_admet
tool: admetlab3
depends_on: generate_candidates
parameters:
molecules: ${generate_candidates.output.molecules}
# Run the pipeline
ivybloom workflows run drug_pipeline.yaml \
--input sequence=MKLLVLGLVGFGVGFGVGFGVGFGVGFGVGFG \
--project-id drug-discovery
High-Throughput Screening
# Batch processing with parallel execution
ivybloom batch run admetlab3 \
--input-file compounds.csv \
--parallel 10 \
--project-id screening-2025
Fragment-Based Design
ivybloom workflows run fragment_discovery.yaml \
--input target_protein=structure.pdb \
--input fragment_library=fragments.sdf \
--parallel
⚙️ Configuration
Configuration is stored in ~/.config/ivybloom/config.json.
Key Settings
# Set default project
ivybloom config set default_project_id my-project
# Enable debug mode
ivybloom config set debug true
# Configure API timeout
ivybloom config set timeout 60
# Set default output format
ivybloom config set default_format table
# View all settings
ivybloom config list
# View configuration schema
ivybloom config schema
Environment Variables
# API authentication
export IVYBLOOM_API_KEY=ivy_sk_...
# Alternative key name
export IVY_API_KEY=ivy_sk_...
# Disable keyring storage
export IVYBLOOM_DISABLE_KEYRING=1
# Enable debug output
export IVYBLOOM_DEBUG=1
🛠 Development
Local Installation
# Clone the repository
git clone https://github.com/ivybiosciences/ivybloom-cli.git
cd ivybloom-cli
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode
pip install -e ".[dev]"
# Verify installation
ivybloom --version
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=ivybloom_cli
# Run specific test file
pytest tests/test_run_parsing.py
# Run only unit tests
pytest -m unit
Code Quality
# Format code with Black
black ivybloom_cli tests
# Lint with Flake8
flake8 ivybloom_cli
# Type check with Mypy
mypy ivybloom_cli
📚 Documentation
| Resource | Description |
|---|---|
| CLI Guide | Complete feature documentation |
| User Guide | Getting started and tutorials |
| Authentication | Auth setup and security |
| Commands Reference | Full command documentation |
| Workflow Examples | Real-world pipeline examples |
| TUI Design | Terminal UI architecture |
| API Reference | Backend API documentation |
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Quick contribution workflow
git checkout -b feature/your-feature
# Make changes...
pytest # Run tests
black ivybloom_cli tests # Format code
git commit -m "feat: your feature description"
git push origin feature/your-feature
# Open a Pull Request
📄 License
This project is licensed under the MIT License - see LICENSE for details.
🆘 Support
- Documentation: docs.ivybiosciences.com/cli
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@ivybiosciences.com
🌿 Computational Biology & Drug Discovery at Your Fingertips
Built with ❤️ by Ivy Biosciences
Metadata
Release files for ivybloom 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ivybloom-0.8.0.tar.gz | 195.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ivybloom-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 409.7 kB
Release files / ivybloom-0.8.0.tar.gz
| Download URL | ivybloom-0.8.0.tar.gz |
|---|---|
| Size | 195.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
366140b729e214fb364cf9772de771eaa082881b7650965f5b6bc4fddf4f7b09
|
|
BLAKE2b-256 checksum How to use checksums |
594a71aba9c34773ccc22f3829073910f5c808e5f959f4e6bb882a1378e8eef1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / ivybloom-0.8.0-py3-none-any.whl
| Download URL | ivybloom-0.8.0-py3-none-any.whl |
|---|---|
| Size | 214.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
964c5be7fb990ff9f1b003e483616dd96114b65b5c6ad6fa99e7de94b3a40e93
|
|
BLAKE2b-256 checksum How to use checksums |
dbaa4967d6641f4090f641b176e6193ca19926d5586cfca66c9a51a4c7fca765
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|