Luca

A lightweight decentralised tool manager for macOS to manage project-specific tool environments.

Luca helps developers install, manage, and activate specific versions of development tools in their projects without polluting your global PATH. For more information, check out our GitHub repository.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/LucaTools/LucaScripts/HEAD/install.sh)"
Terminal — luca install
Luca terminal demo showing simple installation and usage

See Luca in action - simple installation and immediate tool availability

Version-specific Installations

Install specific versions of tools needed for your project, ensuring consistent development environments.

Project Isolation

Each project can have its own set of active tools, preventing version conflicts between projects.

Zero Configuration

Either create a simple Lucafile or install individual tools. No complex setup, no lockfiles, no global PATH pollution.

Quick Start

Step 1: Install Tools

Install tools in a single command:

luca install realm/swiftlint@0.53.0
luca install tuist/tuist@4.78.0 --asset tuist.zip
Step 2: Use Your Tools

Project-specific tool versions work automatically:

# In project-1 directory
$ tuist version
4.78.0
# In project-2 directory
$ tuist version
4.67.0

Lucafile

Step 1: Create a Lucafile

Create a Lucafile in your project directory:

tools:
- name: SwiftLint
  version: 0.53.0
  url: https://github.com/realm/SwiftLint/releases/download/0.53.0/portable_swiftlint.zip
- name: Tuist
  version: 4.78.0
  url: https://github.com/tuist/tuist/releases/download/4.78.0/tuist.zip
Step 2: Install Tools

Install all tools defined in the Lucafile:

luca install
Step 3: Use Your Tools

Use your project-specific tool versions:

swiftlint --help
tuist --help

How It Works

1. Specify Tools

Define your required tools with specific versions in a simple YAML Lucafile.

2. Install Once

Luca downloads and extracts tools to:

~/.luca/tools/{tool-name}/{version}/

3. Use Locally

Tools are symlinked to:

.luca/active/

in your project directory, making them immediately available.

4. Share Settings

Commit your Lucafile to ensure all team members use identical tool versions.

Additional Commands

Custom Lucafile

Specify a custom Lucafile location:

luca install --spec /path/to/custom/Lucafile
Uninstallation

Remove all installed tools and symlinks:

luca uninstall
Uninstall Luca

Completely remove Luca from your system:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/LucaTools/LucaScripts/HEAD/uninstall.sh)"

System Requirements

Requirements

Luca requires:

  • macOS 13.0 or later
  • Swift 5.7 or later (for building from source)
Source Installation

Build and install from source code:

git clone https://github.com/LucaTools/Luca.git
cd Luca
swift build -c release
cp -f .build/release/luca /usr/local/bin/luca