Skip to content

awf-project/devcontainer-features

Repository files navigation

Dev Container Features

A collection of Dev Container Features published to GitHub Container Registry (GHCR).

Table of Contents

Available Features

Flutter SDK

Installs the Flutter SDK with Dart for cross-platform development. Supports stable, beta, master channels and specific versions.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/flutter:1": {}
  }
}

Options

Option Type Default Description
version string stable Flutter channel (stable, beta, master) or specific version (e.g. 3.27.4)
precacheWeb boolean false Run flutter precache --web after install
precacheLinux boolean false Run flutter precache --linux after install
precacheAndroid boolean false Run flutter precache --android after install (requires Android SDK)

Examples

Pin a specific Flutter version:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/flutter:1": {
      "version": "3.27.4"
    }
  }
}

Install with web precache for faster first build:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/flutter:1": {
      "precacheWeb": true
    }
  }
}

Environment

Variable Value
FLUTTER_HOME /opt/flutter

Flutter and Dart binaries are added to PATH automatically.

Clever Tools

Installs Clever Tools, the official CLI for managing Clever Cloud applications and services. Installs via the official Clever Cloud APT repository.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/clever-tools:1": {}
  }
}

Options

Option Type Default Description
version string latest Version to install: latest or a specific APT package version (e.g. 4.6.0)

Mistral Vibe

Installs Mistral Vibe, a command-line coding assistant powered by Mistral's models for conversational access to your codebase.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/mistral-vibe:1": {}
  }
}

Options

Option Type Default Description
version string latest Version to install: latest or a specific version (e.g. 1.2.3)

API Key

The feature does not set MISTRAL_API_KEY automatically. Pass it from your host via remoteEnv in your devcontainer.json:

{
  "remoteEnv": {
    "MISTRAL_API_KEY": "${localEnv:MISTRAL_API_KEY}"
  }
}

This injects the key at runtime without baking it into the Docker image layer.

Tree-sitter

Installs the Tree-sitter CLI for incremental parsing. Optionally compiles grammars (PHP, TypeScript, JavaScript, Go, Dart, Python, YAML) from official repos.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/tree-sitter:1": {}
  }
}

Options

Option Type Default Description
version string latest Tree-sitter CLI version: latest or a specific version (e.g. 0.25.4)
grammarPhp boolean false Compile and install the PHP grammar
grammarTypescript boolean false Compile and install the TypeScript grammar
grammarJavascript boolean false Compile and install the JavaScript grammar
grammarGo boolean false Compile and install the Go grammar
grammarDart boolean false Compile and install the Dart grammar
grammarPython boolean false Compile and install the Python grammar
grammarYaml boolean false Compile and install the YAML grammar

Examples

Install with PHP and TypeScript grammars:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/tree-sitter:1": {
      "grammarPhp": true,
      "grammarTypescript": true
    }
  }
}

Pin a specific version with all grammars:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/tree-sitter:1": {
      "version": "0.25.4",
      "grammarPhp": true,
      "grammarTypescript": true,
      "grammarJavascript": true,
      "grammarGo": true,
      "grammarDart": true,
      "grammarPython": true,
      "grammarYaml": true
    }
  }
}

Environment

Variable Value
TREE_SITTER_DIR /usr/local/lib/tree-sitter

Tree-sitter CLI is added to PATH automatically. Compiled grammars are stored under $TREE_SITTER_DIR.

RTK

Installs RTK, a token-optimized CLI proxy for AI coding agents. Reduces token usage by 60-90% on dev operations by filtering and compressing tool output.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/rtk:1": {}
  }
}

Options

Option Type Default Description
version string latest Version to install: latest or a specific version (e.g. 0.5.0)

Examples

Pin a specific version:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/rtk:1": {
      "version": "0.5.0"
    }
  }
}

Architecture Support

RTK supports Linux containers on both x86_64 (amd64) and aarch64 (arm64) architectures. The feature automatically detects the container architecture and downloads the appropriate binary.

Global Initialization

The feature runs rtk init --global during installation, setting up the global configuration for the container user.

ZPM

Installs ZPM, a Zig-based MCP server exposing a Trealla Prolog logic engine over STDIO for deterministic logical reasoning. Provides 29 MCP tools for knowledge management, logical querying, and truth maintenance.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/zpm:1": {}
  }
}

Options

Option Type Default Description
version string latest Version to install: latest or a specific version (e.g. v0.3.0)

Examples

Pin a specific version:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/zpm:1": {
      "version": "v0.3.0"
    }
  }
}

Architecture Support

ZPM supports Linux containers on both x86_64 (amd64) and aarch64 (arm64) architectures. The feature automatically detects the container architecture and downloads the appropriate binary. SHA256 checksums are verified on every install.

Ztick

Installs Ztick, a push-driven, time-based job scheduler written in Zig. Supports TCP and REST/HTTP APIs, TLS 1.3, and multiple dispatch targets.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/ztick:1": {}
  }
}

Options

Option Type Default Description
version string latest Version to install: latest or a specific version (e.g. 0.3.0)

Examples

Pin a specific version:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/ztick:1": {
      "version": "0.3.0"
    }
  }
}

Architecture Support

Ztick supports Linux containers on both x86_64 (amd64) and aarch64 (arm64) architectures. The feature automatically detects the container architecture and downloads the appropriate binary. SHA256 checksums are verified on every install.

AWF CLI

Installs AWF CLI, an AI Workflow CLI for orchestrating AI coding agents.

// devcontainer.json
{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/awf-cli:1": {}
  }
}

Options

Option Type Default Description
version string latest Version to install: latest or a specific version (e.g. 0.9.0)

Examples

Pin a specific version:

{
  "features": {
    "ghcr.io/awf-project/devcontainer-features/awf-cli:1": {
      "version": "0.9.0"
    }
  }
}

Architecture Support

AWF CLI supports Linux containers on both x86_64 (amd64) and aarch64 (arm64) architectures. The feature automatically detects the container architecture and downloads the appropriate binary. SHA256 checksums are verified on every install.


Repository Structure

src/
  flutter/              # Flutter SDK feature
    devcontainer-feature.json
    install.sh
  grepai/               # GrepAI feature
    devcontainer-feature.json
    install.sh
  awf-cli/              # AWF CLI feature (private)
    devcontainer-feature.json
    install.sh
  rtk/                  # RTK feature
    devcontainer-feature.json
    install.sh
  tree-sitter/          # Tree-sitter feature
    devcontainer-feature.json
    install.sh
  ztick/                # Ztick feature
    devcontainer-feature.json
    install.sh
  zpm/                  # ZPM feature
    devcontainer-feature.json
    install.sh
test/
  flutter/              # Flutter tests
    scenarios.json
    test.sh
  grepai/               # GrepAI tests
    scenarios.json
    test.sh
  awf-cli/              # AWF CLI tests
    scenarios.json
    test.sh
  rtk/                  # RTK tests
    scenarios.json
    test.sh
  tree-sitter/          # Tree-sitter tests
    scenarios.json
    test.sh
  ztick/                # Ztick tests
    scenarios.json
    test.sh
  zpm/                  # ZPM tests
    scenarios.json
    test.sh
.github/
  workflows/
    release.yml         # CI/CD: test on PR, publish on tag

Local Testing

Test features locally before pushing:

# All scenarios
./test-local.sh

# Specific feature
./test-local.sh flutter

# Specific scenario
./test-local.sh flutter install_flutter_stable

# Force rebuild without Docker cache
./test-local.sh --no-cache flutter

Requires Docker and the Dev Container CLI (npm install -g @devcontainers/cli).

Contributing

  1. Fork and clone the repository
  2. Create a feature branch
  3. Add or modify features under src/
  4. Add matching tests under test/
  5. Run ./test-local.sh <feature> to validate locally
  6. Open a pull request against main

Tests run automatically on pull requests via devcontainers/action.

Publishing

Features are published to GHCR when a version tag is pushed:

git tag v1.0.0
git push origin v1.0.0

License

MIT

About

Devcontainer features for my projects - feel free to use them

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages