# Install statesmith with Homebrew

State machine code generation tool suitable for bare metal, embedded and more. Version 0.22.2 via Homebrew; verified 2026-05-24.

## Install

```sh
sudo av install brew:statesmith
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install statesmith
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:statesmith
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/statesmith>
- **Version:** 0.22.2
- **Source summary:** State machine code generation tool suitable for bare metal, embedded and more
- **Homepage:** <https://github.com/StateSmith/StateSmith>
- **Repository:** <https://github.com/StateSmith/StateSmith>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/StateSmith/StateSmith/archive/refs/tags/v0.22.2.tar.gz>
- **Last updated:** 2026-05-24T03:37:42Z
- **Generated:** 2026-08-04T22:13:35+00:00

## Executables

- ss.cli (cli)
- ss.cli (alias)

## Dependencies

- dotnet@9

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-08-04
- Package-manager version: 0.22.2
- Package-manager updated: 2026-05-24
- Local data: ok
- Upstream repository: https://github.com/StateSmith/StateSmith
- Upstream latest detected: v0.22.2 (current)
## Project history and usage

StateSmith is an open-source state-machine code generator with a CLI, aimed especially at embedded and bare-metal workflows where generated code should be readable, dependency-free, and allocation-conscious.

### Project history

The README describes StateSmith as a cross-platform tool for generating state machines in multiple programming languages, with generated code suitable for tiny bare-metal microcontrollers, games, apps, web projects, and computers.

The official About wiki explains the author's motivation: he could not find a state-machine code generator suitable for low-level embedded application use, with an attractive license and enjoyable workflow. It also explains the C# implementation choice as a way to use the open-source Roslyn compiler for parsing and code generation.

### Adoption history

The project moved from earlier C# script-oriented examples toward a packaged CLI. The CLI install wiki documents `ss.cli`, installable globally as a .NET tool or downloadable as a standalone binary.

The README states that the author uses StateSmith in production projects and that other companies use it in production as well, while the repository page shows ongoing releases and a sizable GitHub audience for a specialized embedded-code tool.

### How it is used

Users model state machines with diagram tools such as PlantUML or draw.io, then run the CLI to generate source code for supported languages. Tutorials and examples are the main documented entry points.

The project is designed for teams that want diagrams and implementation to stay synchronized: generated code comes from the diagram-backed model rather than from hand-maintained state-machine code.

### Why package nerds care

StateSmith is notable because it packages a traditionally GUI-heavy modeling niche into a command-line generator that can be installed, versioned, and run in build scripts.

For package managers, `ss.cli` is the useful unit: it turns state-machine diagrams into source artifacts without requiring an IDE plugin or proprietary modeling tool.

### Timeline

- 2023: Official About wiki documents the project motivation and platform goals.
- 2025: CLI install wiki documents standalone binaries and .NET tool installation for `ss.cli`.
- 2026: GitHub repository page lists v0.22.2 as the latest release on May 11, 2026.

### Related projects

- Related tools and formats include PlantUML, draw.io, UML2 state machines, Roslyn, and .NET global tools.
- StateSmith also maintains examples and tutorials that show the older C# script method and newer CLI-oriented workflows.

### Sources

- <https://github.com/StateSmith/StateSmith#readme>
- <https://github.com/StateSmith/StateSmith/wiki/About>
- <https://github.com/StateSmith/StateSmith/wiki/CLI%3A-download-or-install>
- source_facts.executables
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** statesmith
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable


## Related links

- [Source-control packages](https://pkg.so/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://pkg.so/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://pkg.so/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://pkg.so/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [dotnet@9](https://pkg.so/brew/dotnet-9/) - Runtime dependency declared by Homebrew.
- [nanopb](https://pkg.so/brew/nanopb/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools, embedded.
- [fbthrift](https://pkg.so/brew/fbthrift/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools.
- [swig](https://pkg.so/brew/swig/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools.
- [swiftgen](https://pkg.so/brew/swiftgen/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools.
- [sourcery](https://pkg.so/brew/sourcery/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools.
- [buf](https://pkg.so/brew/buf/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools.
- [dtc](https://pkg.so/brew/dtc/) - Shares pkgdb curated category or tags: cli, developer-tools, embedded.
- [thrift](https://pkg.so/brew/thrift/) - Shares pkgdb curated category or tags: cli, code-generation, developer-tools.
- [sequelize-auto](https://pkg.so/npm/sequelize-auto/) - Local package facts share a topical domain. Shared terms: bare, cli, code, code-generation, developer.
- [autorest](https://pkg.so/brew/autorest/) - Local package facts share a topical domain. Shared terms: cli, code, code-generation, developer, developer-tools.
- [buffa](https://pkg.so/brew/buffa/) - Local package facts share a topical domain. Shared terms: cli, code, code-generation, developer, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/statesmith.yml](https://github.com/mxcl/pkgdb/blob/main/combined/statesmith.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- pkgdb category and tag curation
- package relationship graph
- cross-ecosystem install command graph
