prism

module
v0.35.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2026 License: Apache-2.0

README ΒΆ

Prism

Prism Logo

Academic Research Computing Platform - Pre-configured cloud environments made simple

CI GitHub release (latest by date) License Go Report Card ESLint

What is Prism?

Prism provides researchers with pre-configured cloud workstations for data analysis, machine learning, and computational research. Launch production-ready environments without manual configuration.

From individual researchers to institutional deployments - research computing made simple, scalable, and cost-effective.

Learn more at prismcloud.io

🎯 Core Design Principles

  • 🎯 Default to Success: Every template works out of the box in every supported region
  • ⚑ Optimize by Default: Smart instance sizing and cost-performance optimization
  • πŸ” Transparent Fallbacks: Clear communication when configurations change
  • πŸ’‘ Helpful Warnings: Gentle guidance for optimal choices
  • 🚫 Zero Surprises: Users always know what they're getting
  • πŸ“ˆ Progressive Disclosure: Simple by default, detailed when needed

πŸš€ Installation

macOS

Homebrew (Recommended)

brew install scttfrdmn/tap/prism

Manual Installation

# Download and extract
curl -L https://github.com/scttfrdmn/prism/releases/latest/download/prism_0.5.11_darwin_arm64.tar.gz | tar xz

# Install binaries
sudo mv prism prismd /usr/local/bin/
Linux

Debian/Ubuntu

wget https://github.com/scttfrdmn/prism/releases/download/v0.5.11/prism_0.5.11_linux_amd64.deb
sudo dpkg -i prism_0.5.11_linux_amd64.deb

RHEL/CentOS/Fedora

wget https://github.com/scttfrdmn/prism/releases/download/v0.5.11/prism_0.5.11_linux_amd64.rpm
sudo rpm -i prism_0.5.11_linux_amd64.rpm

Alpine Linux

wget https://github.com/scttfrdmn/prism/releases/download/v0.5.11/prism_0.5.11_linux_amd64.apk
sudo apk add --allow-untrusted prism_0.5.11_linux_amd64.apk
Windows

Scoop

scoop bucket add scttfrdmn https://github.com/scttfrdmn/scoop-bucket
scoop install prism

Manual Installation

# Download from GitHub releases
# https://github.com/scttfrdmn/prism/releases/latest
# Extract and add to PATH

πŸš€ Quick Start

First-Time Users: Interactive Wizard (⏱️ 30 seconds)

Launch your first workspace with a guided wizard!

# Configure AWS credentials (if not already set up)
aws configure

# Launch the interactive wizard
prism init

The wizard will guide you through:

  1. βœ… Template Selection: Browse by category (ML/AI, Data Science, Bioinformatics, Web)
  2. βœ… Workspace Configuration: Name and size with cost estimates
  3. βœ… Review: See exactly what you're launching
  4. βœ… Launch: Real-time progress tracking
  5. βœ… Connect: SSH connection details and next steps

Time to first workspace: ~30 seconds πŸš€


Advanced: Direct Commands

For experienced users or automation:

# View available templates
prism templates

# Launch a Python ML environment
prism launch python-ml my-research

# Connect via SSH
prism connect my-research

# View running workspaces
prism list

Automatic Features:

  • βœ… Daemon starts if not running
  • βœ… Optimal instance type selected
  • βœ… Security groups configured
  • βœ… SSH keys generated and managed
  • βœ… Template provisioned and ready

Credential Discovery (automatic):

  • Environment variables (AWS_PROFILE, AWS_ACCESS_KEY_ID)
  • AWS CLI configuration (~/.aws/credentials)
  • Prism profiles (for multi-account management)

🌟 Key Features

πŸ’° Cost Optimization
  • Hibernation: Preserve state while reducing costs by 90%
  • Idle Detection: Automated hibernation policies with configurable thresholds
  • Budget Management: Project-level cost tracking and alerts
  • Cost Analytics: Real-time spending reports and forecasts
πŸ—οΈ Research Templates
  • 21+ Pre-configured Environments: Python ML, R, bioinformatics, web dev, and more
  • Template Inheritance: Compose complex environments from simple building blocks
  • Smart Defaults: Optimal instance sizing and cost-performance ratios
  • Regional Fallbacks: Automatic handling of availability constraints
🏒 Enterprise & Collaboration
  • Project-Based Organization: Multi-user projects with role-based access
  • Research User System: Persistent identities across workspaces
  • Multi-Account Support: Manage multiple AWS profiles efficiently
  • Template Marketplace: Share and discover community templates
πŸ“± Multi-Modal Access
  • CLI: Fast, scriptable command-line interface
  • TUI: Interactive terminal interface with keyboard navigation
  • GUI: Desktop application (available when building from source)
  • REST API: Complete HTTP API on port 8947

πŸ“¦ Templates

Prism ships with minimal base OS templates (as of v0.7.0):

  • Amazon Linux 2023 (x86_64, ARM64)
  • Ubuntu 22.04 LTS (x86_64, ARM64)
  • Ubuntu 24.04 LTS (x86_64, ARM64)

Application templates are community-contributed:

  • Python ML: Jupyter, scikit-learn, TensorFlow, PyTorch
  • R Research: RStudio, tidyverse, Bioconductor
  • Bioinformatics: BLAST, bowtie2, samtools, bedtools
  • Web Development: Node.js, Docker, nginx
  • Desktop Environments: Full GUI with browsers and dev tools
# View all templates (base + community)
prism templates

# Launch a base OS template
prism launch ubuntu-24-04-x86 my-instance

# Launch a community template with applications
prism launch python-ml my-ml-project

# Get detailed template info
prism templates info python-ml

Template Structure: See templates/README.md for details on base/, community/, and custom templates.

πŸ’» Usage Examples

Basic Workspace Management
# Launch a workspace
prism launch python-ml my-project

# List running workspaces
prism list

# Connect via SSH
prism connect my-project

# Stop workspace
prism stop my-project
Cost Optimization
# Hibernate to preserve state while saving costs
prism hibernate my-workspace
prism resume my-workspace

# Automated idle policies
prism idle profile list
prism idle workspace my-gpu --profile gpu
Project Management
# Create project with budget
prism project create ml-research --budget 500

# Add team members
prism project member add ml-research user@example.com --role member

# Launch workspace in project
prism launch python-ml analysis --project ml-research
Multi-Modal Access
# Command line
prism templates

# REST API
curl http://localhost:8947/api/v1/instances

πŸ“– Documentation

πŸ“š Complete Documentation Site - User guides, architecture docs, and persona walkthroughs

prism --help                      # Show all commands
prism templates                   # List available templates
prism templates info <template>   # Detailed template info
prism doctor                      # System health check

Guides:

πŸ—“οΈ Version History

v0.5.11 (Current) - Complete User Invitation & Collaboration System
  • User Invitation System: Individual, bulk, and shared token invitations with full lifecycle management
  • Automatic Provisioning: Research users created with SSH keys, UID/GID, and EFS home directories on invitation acceptance
  • Quota Validation: Pre-flight AWS capacity checking prevents bulk invitation failures
  • Professional GUI: Cloudscape-based invitation management interface with QR code generation
  • Zero Manual Setup: End-to-end automation from invitation send to workspace access
v0.5.10 - Multi-Project Budget System & Rebranding
  • Multi-Project Budgets: Projects can reference multiple budgets for complex funding scenarios
  • Budget Surplus Banking: Track and leverage surplus funds for burst research needs
  • Budget Performance Metrics: ROI analysis, utilization tracking, and forecasting
  • Complete Prism Rebrand: CloudWorkStation β†’ Prism across entire codebase (29,225 files)
  • Binary Rename: cws/prismd β†’ prism/prismd
v0.5.9 - Navigation Restructure & UX Polish
  • Streamlined Navigation: 14 β†’ 6 top-level menu items for clearer workspace focus
  • Unified Storage: Single storage interface combining EFS and EBS management
  • Hierarchical Settings: Advanced features organized under collapsible settings
  • Terminal/WebView Integration: Merged into workspaces view for better context
v0.5.8 - Quick Start Experience & Reliability
  • Quick Start Wizard: Launch first workspace in 30 seconds with GUI wizard
  • CLI Init Command: Interactive prism init onboarding in terminal
  • Workspace Terminology: Consistent "workspace" naming across all interfaces
  • Background State Monitoring: Async daemon monitoring of AWS state changes
  • Billing Accuracy: Correct hibernation billing exception handling
  • Reliability Improvements: AWS system status checks, IAM eventual consistency
v0.5.7 - Template File Provisioning & Test Infrastructure
  • Template File Provisioning: Provision files directly from template definitions
  • AWS Cost Testing: Complete integration test suite with cost tracking
  • Instance Lifecycle Testing: Full workflow validation including cleanup
v0.5.6 - Complete Prism Rebrand
  • Project Rename: CloudWorkStation β†’ Prism (complete rebrand)
  • Repository Rename: prism β†’ prism on GitHub
  • Configuration Directory: .prism β†’ .prism
  • Module Path Update: Complete Go module path migration
v0.5.5 - AWS Research Services Integration
  • EMR Studio: Big data analytics and Spark-based research
  • Amazon Braket: Quantum computing research access
  • Web Service Framework: Unified interface for EC2 + AWS research services
v0.5.4 - Universal Version System
  • Dynamic OS Versions: Choose OS versions at launch time with --version flag
  • Version Aliases: Support for latest, lts, previous-lts
  • AMI Freshness Checking: prism ami check-freshness validates static AMI IDs
  • AWS SSM Integration: Automatic latest AMI discovery for major distributions
  • Package Management: Available via Homebrew (macOS), Scoop (Windows), deb, rpm, apk
v0.5.3 - Research User System & Template Marketplace
  • Multi-User Architecture: Persistent research identities across workspaces
  • SSH Key Management: Complete key generation and distribution
  • Template Registry: Multi-registry support with community templates
  • Policy Framework: Institutional governance and access control
v0.4.5 - Enterprise Research Platform
  • Project-Based Organization: Multi-user projects with role-based access
  • Budget Management: Real-time cost tracking and automated controls
  • Hibernation Ecosystem: Manual + automated idle detection policies
  • Template Inheritance: Stackable template system

πŸš€ Roadmap

Phase 5 (Current): Multi-user collaboration and template marketplace Phase 6: Advanced storage (FSx, S3 integration) and AWS research services Phase 7: Enterprise authentication (OAuth, LDAP, SAML) and TUI enhancements

🀝 Contributing

Prism is open source and welcomes contributions!

Contributing Templates: See our Community Template Contribution Guide for step-by-step instructions on creating and submitting templates to the marketplace.

Development:

git clone https://github.com/scttfrdmn/prism.git
cd prism
make build
make test

πŸ“„ License

Apache License 2.0 - Free for academic and commercial use

πŸ†˜ Support


Prism v0.5.11 - Research computing environments made accessible | prismcloud.io

Directories ΒΆ

Path Synopsis
cmd
prism command
Prism CLI client - Launch research computing environments.
Prism CLI client - Launch research computing environments.
prismd command
Prism Daemon (prismd) - Background service for AWS operations.
Prism Daemon (prismd) - Background service for AWS operations.
prismd-service command
internal
cli
Package cli implements Prism's command-line interface application.
Package cli implements Prism's command-line interface application.
pkg
alerting
Package alerting provides a unified notification dispatcher for Prism.
Package alerting provides a unified notification dispatcher for Prism.
ami
Package ami provides Prism's AMI creation system.
Package ami provides Prism's AMI creation system.
api/client
Package client provides the Prism API client implementation
Package client provides the Prism API client implementation
api/mock
Package mock provides mock implementations for Prism API.
Package mock provides mock implementations for Prism API.
aws
Package aws provides AMI caching functionality for the Universal AMI System
Package aws provides AMI caching functionality for the Universal AMI System
cost
Package cost provides advanced cost optimization and alerting features
Package cost provides advanced cost optimization and alerting features
course
Package course β€” audit log implementation for academic integrity tracking.
Package course β€” audit log implementation for academic integrity tracking.
daemon
AMI operations handlers for Universal AMI System (Phase 5.1 Week 2)
AMI operations handlers for Universal AMI System (Phase 5.1 Week 2)
daemon/logger
Package logger provides structured logging for the Prism daemon with proper log levels.
Package logger provides structured logging for the Prism daemon with proper log levels.
errors
Package errors provides enhanced error messages with actionable guidance
Package errors provides enhanced error messages with actionable guidance
idle
Package idle provides advanced idle detection and policy management
Package idle provides advanced idle detection and policy management
invitation
Package invitation provides local invitation cache management for Prism v0.5.11+
Package invitation provides local invitation cache management for Prism v0.5.11+
marketplace
Package marketplace provides the marketplace registry implementation
Package marketplace provides the marketplace registry implementation
profile
Package profile provides functionality for managing Prism profiles
Package profile provides functionality for managing Prism profiles
profile/export
Package export provides functionality for exporting and importing Prism profiles.
Package export provides functionality for exporting and importing Prism profiles.
profile/security
Package security provides comprehensive audit logging for security events
Package security provides comprehensive audit logging for security events
project
Package project provides approval workflow management for Prism.
Package project provides approval workflow management for Prism.
ratelimit
Package ratelimit provides token bucket rate limiting for AWS API calls
Package ratelimit provides token bucket rate limiting for AWS API calls
rbac
Package rbac provides role-based access control for Prism.
Package rbac provides role-based access control for Prism.
repository
Package repository provides multi-repository support for Prism templates.
Package repository provides multi-repository support for Prism templates.
research
Package research provides the multi-user foundation for Prism Phase 5A.
Package research provides the multi-user foundation for Prism Phase 5A.
retry
Package retry provides exponential backoff retry logic for transient failures
Package retry provides exponential backoff retry logic for transient failures
security
Package security provides AWS Artifact compliance validation and SCP enforcement
Package security provides AWS Artifact compliance validation and SCP enforcement
sleepwake
Package sleepwake provides automatic instance hibernation when the system sleeps
Package sleepwake provides automatic instance hibernation when the system sleeps
state
Package state provides unified state management for Prism.
Package state provides unified state management for Prism.
storage
Package storage provides S3-backed file transfer functionality for template provisioning.
Package storage provides S3-backed file transfer functionality for template provisioning.
templates
Package templates provides AMI configuration validation for the Universal AMI System
Package templates provides AMI configuration validation for the Universal AMI System
throttle
Package throttle provides launch throttling for cost control and resource management
Package throttle provides launch throttling for cost control and resource management
types
Package types provides AMI-related data structures for the Universal AMI System
Package types provides AMI-related data structures for the Universal AMI System
version
Package version provides centralized version information for Prism.
Package version provides centralized version information for Prism.
web
Package web provides web interface and proxy capabilities for Prism
Package web provides web interface and proxy capabilities for Prism
workshop
Package workshop provides workshop and event management functionality for Prism.
Package workshop provides workshop and event management functionality for Prism.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL