Skip to content
CAI
Software that uses CAICheck a score

itamae-kitchen/itamae

65.9

Adequate · 20 September 2026

2.7k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Itamae is a lightweight configuration management tool that uses a Chef-like DSL to define and enforce system state through a comprehensive set of infrastructure resources. It supports local execution and remote management via SSH and Docker backends, allowing users to manage files, packages, services, and users across different environments. The system includes a pluggable handler architecture for logging events and provides scaffolding tools to generate recipes and cookbooks.

How it got here

2013 — Initial release and renaming

4 changes.

This period marks the initial release of the Itamae configuration management tool, formerly known as Lightchef, establishing its core project structure and DSL. The work involved renaming the library, removing legacy version constants, and publishing the standalone gem with updated dependencies to ensure compatibility with Ruby 4.0.

2014–2019 — Core resource implementation and test expansion

11 changes.

This period focused on establishing Itamae's core infrastructure by implementing the full suite of system resources and a pluggable event handler system. Significant effort was dedicated to expanding test coverage through comprehensive unit and integration suites, ensuring reliability across local, SSH, and Docker backends. The work also included renaming the project from LightChef and introducing features like custom definitions and Docker image creation.

Features

Initial release of Itamae configuration management tool

This entry marks the initial commit and release of Itamae (formerly Lightchef), a simple and lightweight configuration management tool with a Chef-like DSL. The diff establishes the core project structure, including the Rakefile for running unit and integration tests (via Docker and local execution), the .rspec configuration, and the CHANGELOG.md documenting versions from v1.7.0 through v1.15.0. It also updates the README.md to reflect the new name, concept, and installation/usage instructions, and adds .gitignore entries for Vagrant and local Ruby environment files.

(repo-wide) · high confidence

Initial release of Itamae resource definitions

This commit introduces the complete set of infrastructure resources for Itamae, establishing the core DSL for managing system state. It adds base classes and specific implementations for file, directory, execute, package, gem\_package, git, service, user, group, link, http\_request, remote\_file, remote\_directory, template, and local\_ruby\_block resources. The base resource class defines the attribute system, notification/subscription handling, and the execution lifecycle (pre\_action, set\_current\_attributes, run\_action), while individual resources delegate system operations to Specinfra to ensure cross-platform compatibility.

lib/itamae/resource · high confidence

Itamae v1.15.0 release with definition support and Docker backend

This release introduces the \define\ feature, allowing users to create custom resource-like DSL blocks within recipes, and adds a new \docker\ backend to create Docker images using Itamae recipes. The CLI now supports \itamae init\ and \itamae generate\ commands to scaffold new projects, cookbooks, and roles. Additionally, the \--ohai\ option is deprecated in favor of loading node data via \--node-json\ and \--node-yaml\, and the \--recipe-graph\ option (formerly \--dot\) allows exporting recipe dependencies as a DOT graph. The version is bumped to 1.15.0.

lib/itamae · high confidence

New handler system for recipe and resource events

Itamae now supports a pluggable handler system that allows users to process recipe and resource lifecycle events (such as starts, completions, and failures) through different backends. This change introduces a base handler class and three concrete implementations: a Debug handler for logging events to the application logger, a Json handler for appending structured event data to a specified file, and a Fluentd handler for sending events to a Fluentd logging server. Users can now configure these handlers to integrate Itamae's execution data with existing logging and monitoring infrastructure.

lib/itamae/handler · high confidence

Behavioural changes

Add receive\_file support for Docker and SSH backends

The file resource's edit action now works correctly with the Docker backend, resolving a previous limitation where file modifications failed. This change introduces a \receive\_file\ method across the Exec, Docker, and SSH backends, enabling proper file transfer and content retrieval mechanisms required for editing files within containers and remote hosts.

lib/itamae/ext · high confidence

Library renamed from Lightchef to Itamae

The library has been renamed from Lightchef to Itamae. The main entry point has moved from lib/lightchef.rb to lib/itamae.rb, which now requires the full set of Itamae components (runner, recipe, resource, handler, backend, etc.), while the old lib/lightchef.rb file has been removed.

lib · high confidence

Removal of hardcoded version constant

The explicit version constant (0.0.1) previously defined in lib/lightchef/version.rb has been removed. This change eliminates the static version string from the library's codebase, likely shifting version management to an external configuration or build process.

lib/lightchef · medium confidence

Rename entry point to Itamae

The executable entry point in the bin directory has been renamed from 'lightchef' to 'itamae'. This change updates the command-line interface to reflect the project's new name, ensuring that users invoke the tool using the 'itamae' command instead of the previous identifier.

bin · high confidence

Test coverage

Add local integration test runner for \itamae local\ command; Added serverspec integration tests for Itamae resources; Added unit test configuration for Itamae; Added unit tests for Itamae core components; Added unit tests for Itamae resource attribute definitions and execution; Expanded integration test coverage for core resources and features.

Dependencies

Itamae gem release with updated dependencies and Ruby 4.0 compatibility

The Itamae configuration management tool is now released as a standalone gem with explicit runtime dependencies on Thor (\>= 1.0.0) and Specinfra (\>= 2.81.0, \< 3.0.0), alongside Hashie, ANSI, and Schash. The project has officially renamed from Lightchef, removing the legacy gemspec and updating the Gemfile to include development dependencies like Serverspec (\~\> 2.43) and Docker-api (\~\> 2). Additionally, the Gemfile now includes a workaround for Ruby 4.0 preview versions by explicitly requiring the 'english', 'fileutils', 'find', 'irb', and 'stringio' gems, ensuring compatibility with upcoming Ruby releases.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 66.

Lenses

  • Code Health 99
  • Architecture 100
  • Maturity 53
  • Readiness 68
  • Security 75

Changes since last survey

  • 300 commits — 272 feature/other, 28 fixes

By area

  • (repo) — 104 commits
  • (root) — 56 commits
  • .github/workflows — 55 commits
  • lib/itamae — 53 commits
  • spec/integration — 16 commits
  • tasks/integration_local_spec.rb — 8 commits
  • spec/unit — 3 commits
  • .github/dependabot.yml — 2 commits
  • tasks/httpbin_server.rb — 2 commits
  • bin/itamae — 1 commit

Notable commits

  • fix: Add regression test for user option
  • fix: Fix CI
  • fix: Fix Chef install script URL
  • fix: Fix PR link in CHANGELOG.md
  • fix: Fix badge url [ci skip]
  • fix: Fix comment [ci skip]
  • fix: Fix shadowed variable in include_recipe find block
  • fix: Fix the lack of local import
  • fix: Fix wrong changelog diff link
  • fix: Fixed bundler installing at ruby 2.7
  • fix: Fixed. Couldn't install bundler with Ruby 2.7 + --jit
  • fix: Fixed. Bundler::GemNotFound on ruby 3.2
  • fix: Fixed. avoid error for "Command chmod 777 /tmp/itamae_tmp failed. (exit status: 1)"
  • fix: Fixed. integration-local on Ruby < 2.6
  • fix: Merge pull request #1 from urara4/fix-windows-crlf
  • fix: Merge pull request #289 from pocke/fix-rakefile-to-run-test
  • fix: Merge pull request #316 from tomothy83/fix-crlf-problem-in-windows
  • fix: Merge pull request #339 from NPoi/fix/chef-install-url
  • fix: Merge pull request #349 from mishina2228/fix-pr-link-in-changelog
  • fix: Merge pull request #359 from itamae-kitchen/fix-integration-local
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

itamae-kitchen/itamae was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 2c6e5543c06787d31cc1d62e5be8b16b78b9c869 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.