A JupyterLab extension that provides a graphical interface for browsing BioLM models, inserting SDK code snippets, and managing authentication - all from within JupyterLab's sidebar.
- Browse all available BioLM models
- Search and filter models by name, description, or tags
- Click tags to insert code snippets with model + action pre-filled
- Copy model IDs to clipboard
- Expandable model descriptions
- Quick access to common SDK operation examples
- Searchable list of operations (Generate, Predict, Embed, etc.)
- One-click code insertion into notebook cells
- Organized by category
- Manage multiple API key profiles
- Test API key connections
- Set default model and action preferences
- Respects
BIOLM_TOKENenvironment variable
pip install jupyterlab-biolm# Clone the repository
git clone https://github.com/yourusername/jupyterlab-biolm.git
cd jupyterlab-biolm
# Install the extension
pip install -e .
# Build the extension
jlpm install
jlpm build
# Rebuild JupyterLab
jupyter lab build-
Open the Extension: The BioLM sidebar will appear in JupyterLab's left sidebar. If not visible, use the command palette (
Cmd/Ctrl + Shift + C) and search for "Open BioLM". -
Configure API Key:
- Go to the Settings tab
- Add a new profile with your API key
- Or use the
BIOLM_TOKENenvironment variable
-
Browse Models:
- Switch to the Models tab
- Search or filter by tags
- Click a tag button to insert code for that model + action
-
Use Operations:
- Switch to the Operations tab
- Browse common SDK operations
- Click "Insert" to add code to your active notebook cell
- Node.js >= 16
- Python >= 3.8
- JupyterLab >= 4.0.0
# Install dependencies
jlpm install
# Build TypeScript
jlpm build:lib
# Build extension in development mode
jlpm build:labextension:dev
# Watch for changes
jlpm watchjupyterlab-biolm/
βββ src/ # TypeScript source
β βββ index.ts # Extension entry point
β βββ widget.tsx # Main sidebar widget
β βββ api/ # API client
β βββ components/ # React components
β βββ services/ # Business logic
β βββ data/ # Static data
βββ style/ # CSS styles
βββ schema/ # Settings schema
βββ jupyterlab_biolm/ # Python package
The extension stores settings in JupyterLab's settings system. You can configure:
- API Key Profiles: Multiple named profiles with different API keys
- Active Profile: Which profile to use (or environment variable)
- Default Model: Default model ID for code generation
- Default Action: Default action (predict, generate, etc.)
The extension supports several environment variables for deployment-level configuration:
Controls whether to use the server-side proxy for API requests or make direct API calls from the browser.
true(default): Use server proxy to avoid CORS issues. Recommended for most deployments.false: Make direct API calls from the browser. Only use when CORS is properly configured on the API server.
# Use proxy (default, recommended)
export BIOLM_USE_PROXY=true
# Use direct API calls (requires CORS configuration)
export BIOLM_USE_PROXY=falseSets the base URL for the BioLM API. Useful for:
- Testing against staging environments
- Using self-hosted BioLM instances
- API version changes
# Use default production API
export BIOLM_API_BASE_URL=https://biolm.ai/api/ui/community-api-models/
# Use staging environment
export BIOLM_API_BASE_URL=https://staging.biolm.ai/api/ui/community-api-models/Note: The URL should end with a trailing slash. If not provided, one will be added automatically.
Sets the timeout (in seconds) for API requests made by the server extension.
# Use default 10 second timeout
export BIOLM_REQUEST_TIMEOUT=10
# Increase timeout for slow networks
export BIOLM_REQUEST_TIMEOUT=30Sets the cache time-to-live in milliseconds for model metadata. The default is 5 minutes (300000 ms).
# Use default 5 minute cache
export BIOLM_CACHE_TTL=300000
# Disable caching (0) or set custom duration
export BIOLM_CACHE_TTL=600000 # 10 minutesSets the default API token to use if no profile is selected in the UI (canonical BioLM SDK name). Legacy BIOLM_API_KEY is still read as a fallback. This can also be configured in the Settings tab.
export BIOLM_TOKEN=your_api_token_hereFROM jupyter/scipy-notebook
# Install extension
RUN pip install jupyterlab-biolm
# Configure environment variables
ENV BIOLM_USE_PROXY=true
ENV BIOLM_API_BASE_URL=https://biolm.ai/api/ui/community-api-models/
ENV BIOLM_REQUEST_TIMEOUT=10
ENV BIOLM_CACHE_TTL=300000Set environment variables in your deployment configuration:
# .github/workflows/deploy.yml or similar
env:
BIOLM_USE_PROXY: "false" # If CORS is configured
BIOLM_API_BASE_URL: "https://biolm.ai/api/ui/community-api-models/"
BIOLM_REQUEST_TIMEOUT: "15"The extension fetches model metadata from https://api.biolm.ai/models. Models are cached for 5 minutes to reduce API calls.
- JupyterLab >= 4.0.0
- React >= 18.0.0
BSD-3-Clause
For issues and feature requests, please visit the GitHub repository.