Skip to main content
The bloom command performs a comprehensive health check of your development environment, verifying that all required dependencies are installed and properly configured.

Usage

fern bloom [options]

Options

--troubleshoot
flag
Show detailed installation instructions for missing dependencies
-t
flag
Short form of --troubleshoot

What It Checks

The bloom command verifies:

Critical Dependencies

These must be installed for Fern to work:
  • C++ Compiler (g++) - Required for compiling native applications
  • pkg-config - Required for library configuration
  • Fern C++ Library - The core Fern framework

Optional Dependencies

These enhance functionality but aren’t required:
  • Emscripten - For web platform builds
  • CMake - For advanced build configurations
  • System Libraries - X11, Xext, fontconfig, freetype2

Fern-Specific Checks

  • Fern C++ Library - Global installation status
  • Fern Templates - Available project templates
  • Fern Configuration - Configuration file status

Examples

Basic Health Check

fern bloom
🌿 Fern System Health Check
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

System Check Results:

 C++ Compiler (g++): Found at /usr/bin/g++
 pkg-config: Installed
 Fern C++ Library: Installed globally
 Fern Templates: Available at ~/.fern/templates
 Fern Configuration: Found at ~/.fern/config.yaml
 X11 Libraries: Installed
 Fontconfig: Installed
 Emscripten: Not found (optional)

Health Check Summary: 7 passed, 1 failed

Some optional dependencies missing. Core functionality available.
Run 'fern bloom --troubleshoot' for optimization tips.

Show Installation Help

fern bloom --troubleshoot
This displays platform-specific installation instructions for missing dependencies.

System Requirements by Platform

sudo apt-get update
sudo apt-get install build-essential pkg-config cmake make
sudo apt-get install libx11-dev libxext-dev libfontconfig1-dev libfreetype6-dev

Installing Emscripten (Optional)

For web development support:
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
Add to your shell profile to make it permanent:
echo 'source ~/emsdk/emsdk_env.sh' >> ~/.bashrc

Exit Codes

0
code
All checks passed successfully
1
code
One or more checks failed (may still be functional if only optional dependencies failed)

Check Results

Each check displays one of three statuses:
  • ✓ (Green) - Dependency found and working
  • ✗ (Red) - Critical dependency missing (Fern won’t work)
  • ⚠ (Yellow) - Optional dependency missing (Fern will work with reduced functionality)

Verifying Installation

After installing dependencies:
fern bloom          # Check system health
fern sprout testapp # Create test project
cd testapp
fern fire           # Test build and run

Common Issues

Install the build tools for your platform:
# Ubuntu/Debian
sudo apt-get install build-essential

# Fedora
sudo dnf groupinstall 'Development Tools'
Install Fern globally:
cd /path/to/fern
./install.sh
Install pkg-config:
# Ubuntu/Debian
sudo apt-get install pkg-config

# Fedora
sudo dnf install pkgconfig
Install X11 development files:
# Ubuntu/Debian
sudo apt-get install libx11-dev libxext-dev

# Fedora
sudo dnf install libX11-devel libXext-devel

Troubleshooting Output

When run with --troubleshoot, the command provides:
  1. Platform-specific installation commands for your operating system
  2. Step-by-step installation guide for Fern and dependencies
  3. Emscripten setup instructions for web development
  4. Verification steps to confirm everything works
  • fern sprout - Create a new project after verifying your environment
  • fern fire - Run your project after health checks pass
  • fern lsp install - Install Language Server Protocol support

Build docs developers (and LLMs) love