Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
- open-code-review
- skillspector
- herdr
- colibri
baseImage:
- debian:latest
- ubuntu:latest
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ This repository contains a _collection_ of Features.
| open-code-review | https://github.com/alibaba/open-code-review | CLI-oriented code review tool for diffs with deterministic checks plus optional LLM review. |
| SkillSpector | https://github.com/NVIDIA/SkillSpector | Standalone security scanner for local AI-agent skill/config files; useful only if you want an AI-dev-security feature. |
| herdr | https://github.com/ogulcancelik/herdr | Fast, cross-platform CLI tool distributed as a static binary via GitHub releases. |
| colibri | https://github.com/JustVugg/colibri | Run GLM-5.2 (744B MoE) on a consumer machine — pure C, zero deps, experts streamed from disk. |



Expand Down Expand Up @@ -770,3 +771,21 @@ Running `herdr --version` inside the built container will print the version of h
```bash
herdr --version
```

### `colibri`

Running `colibri` inside the built container will print the usage banner of colibri. The installed version is recorded in `/usr/local/share/colibri/VERSION`.

```jsonc
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/jsburckhardt/devcontainer-features/colibri:1": {}
}
}
```

```bash
colibri
cat /usr/local/share/colibri/VERSION
```
13 changes: 13 additions & 0 deletions src/colibri/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "colibri",
"id": "colibri",
"version": "1.0.0",
"description": "Run GLM-5.2 (744B MoE) on a consumer machine — pure C, zero deps, experts streamed from disk. Tiny engine, immense model.",
"options": {
"version": {
"type": "string",
"default": "latest",
"description": "Version of colibri to install from GitHub releases e.g. v1.0.0"
}
}
}
132 changes: 132 additions & 0 deletions src/colibri/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
#!/usr/bin/env bash

# Variables
REPO_OWNER="JustVugg"
REPO_NAME="colibri"
BINARY_NAME="colibri"
COLIBRI_VERSION="${VERSION:-"latest"}"
GITHUB_API_REPO_URL="https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/releases"

set -e

if [ "$(id -u)" -ne 0 ]; then
echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
exit 1
fi

# Clean up
rm -rf /var/lib/apt/lists/*

# Checks if packages are installed and installs them if not
check_packages() {
if ! dpkg -s "$@" >/dev/null 2>&1; then
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
echo "Running apt-get update..."
apt-get update -y
fi
apt-get -y install --no-install-recommends "$@"
fi
}

# Make sure we have the required tools and runtime libraries.
# colibri is a native C binary that links against libgomp at runtime.
check_packages curl jq ca-certificates tar libgomp1

# Function to get the latest version from GitHub API
get_latest_version() {
curl -s "${GITHUB_API_REPO_URL}/latest" | jq -r ".tag_name"
}

# Check if a version is passed as an argument
if [ -z "$COLIBRI_VERSION" ] || [ "$COLIBRI_VERSION" = "latest" ]; then
COLIBRI_VERSION=$(get_latest_version)
if [ -z "$COLIBRI_VERSION" ] || [ "$COLIBRI_VERSION" = "null" ]; then
echo "ERROR: Could not resolve latest colibri version from GitHub API"
exit 1
fi
echo "No version provided or 'latest' specified, installing the latest version: $COLIBRI_VERSION"
else
echo "Installing version from environment variable: $COLIBRI_VERSION"
fi

# Determine the OS and architecture
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)

case "$OS" in
linux)
OS_NAME="linux"
;;
darwin)
OS_NAME="macos"
;;
*)
echo "Unsupported OS: $OS"
exit 1
;;
esac

case "$ARCH" in
x86_64|amd64)
ARCH_NAME="x86_64"
;;
aarch64|arm64)
# Upstream currently publishes macos-arm64 only; no linux-aarch64 asset exists.
ARCH_NAME="arm64"
;;
*)
echo "Unsupported architecture: $ARCH"
exit 1
;;
esac

# Upstream release assets follow: colibri-<version>-<os>-<arch>.tar.gz
ASSET_NAME="colibri-${COLIBRI_VERSION}-${OS_NAME}-${ARCH_NAME}.tar.gz"
DOWNLOAD_URL="https://github.com/${REPO_OWNER}/${REPO_NAME}/releases/download/${COLIBRI_VERSION}/${ASSET_NAME}"

# Create a temporary directory for the download
TMP_DIR=$(mktemp -d)
cd "$TMP_DIR" || exit

echo "Downloading colibri from $DOWNLOAD_URL"
if ! curl -fsSL "$DOWNLOAD_URL" -o "colibri.tar.gz"; then
echo "ERROR: Failed to download colibri release asset $ASSET_NAME"
echo "This platform (${OS_NAME}-${ARCH_NAME}) may not be supported by the upstream release."
exit 1
fi

# Extract the tarball
echo "Extracting colibri..."
tar -xzf "colibri.tar.gz"

# Locate the extracted binary (upstream ships a single file named like the asset stem)
BIN_FILE=$(find . -maxdepth 2 -type f -name "colibri-${COLIBRI_VERSION}-${OS_NAME}-${ARCH_NAME}" | head -1)
if [ -z "$BIN_FILE" ]; then
# Fallback: any executable-looking file
BIN_FILE=$(find . -maxdepth 2 -type f ! -name "*.tar.gz" | head -1)
fi
if [ -z "$BIN_FILE" ]; then
echo "ERROR: Could not find colibri binary in extracted archive"
exit 1
fi

# Install the binary
echo "Installing colibri to /usr/local/bin/${BINARY_NAME}..."
install -m 0755 "$BIN_FILE" "/usr/local/bin/${BINARY_NAME}"

# Persist the installed version for later verification (the binary itself has no --version flag).
mkdir -p /usr/local/share/colibri
echo "$COLIBRI_VERSION" > /usr/local/share/colibri/VERSION
chmod 0644 /usr/local/share/colibri/VERSION

# Cleanup
cd - >/dev/null || exit
rm -rf "$TMP_DIR"
rm -rf /var/lib/apt/lists/*

# Verify installation
echo "Verifying installation..."
command -v "${BINARY_NAME}" >/dev/null || { echo "colibri not found on PATH"; exit 1; }
echo "colibri installed: $(cat /usr/local/share/colibri/VERSION)"

echo "Done!"
1 change: 1 addition & 0 deletions test/_global/all-tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,6 @@ check "zizmor" zizmor --version
check "open-code-review" opencodereview --version
check "skillspector" skillspector --version
check "herdr" herdr --version
check "colibri" bash -c "command -v colibri"

reportResults
7 changes: 7 additions & 0 deletions test/_global/colibri-specific-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

set -e
source dev-container-features-test-lib
check "colibri with specific version" /bin/bash -c "cat /usr/local/share/colibri/VERSION | grep 'v1.0.0'"

reportResults
11 changes: 10 additions & 1 deletion test/_global/scenarios.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@
"zizmor": {},
"open-code-review": {},
"skillspector": {},
"herdr": {}
"herdr": {},
"colibri": {}
}
},
"flux-specific-version": {
Expand Down Expand Up @@ -363,5 +364,13 @@
"version": "v0.7.3"
}
}
},
"colibri-specific-version": {
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"colibri": {
"version": "v1.0.0"
}
}
}
}
8 changes: 8 additions & 0 deletions test/colibri/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

set -e

source dev-container-features-test-lib
check "colibri" bash -c "command -v colibri"
check "colibri VERSION marker" test -s /usr/local/share/colibri/VERSION
reportResults
Loading