kasetto - declarative AI agent environment manager, written in Rust

kasetto - declarative AI agent environment manager, written in Rust

posted 3 min read

Hey community!

I want to share an open-source tool I built for myself, and that I hope will be useful to other developers working with AI agents.

The Problem

The more AI coding tools we adopted, the messier our setup got. Skills and MCP servers installed manually, via individual commands, or copy-pasted from docs. Scattered across Claude Code, Cursor, Codex, Windsurf - with no way to version any of it, no way to share it with teammates, no way to reproduce it on a new machine or project.

Every new team member meant walking them through the same manual steps. Every new machine meant doing it all over again. And if someone changed a skill or added an MCP server, there was no way to propagate that to the rest of the team.

Sound familiar?

The Idea

I built kasetto to fix that. The idea is borrowed from things I already loved - the declarative reproducibility of dotfiles, the simplicity of uv for Python packages. What uv did for Python, kasetto aims to do for AI agent skills.

One YAML config describes your entire setup: skills, MCP servers, target agents. Commit it, share it, and everyone on the team gets the exact same environment. No manual editing, no drift between machines or teammates. New machine? One command.

The Name

Kasetto (カセット) is the Japanese word for cassette - as in a cassette tape. A cassette was a self-contained, portable thing: you recorded something once, handed it to someone, and it played back exactly the same on any device. No setup, no drift, no "works on my machine." That's exactly what kasetto does for your AI agent environment - package it once, share it, and it reproduces identically everywhere.

Why kasetto

  • Declarative - one YAML config, version it, share it, bootstrap a whole team in seconds
  • Multi-agent - 21 built-in presets: Claude Code, Cursor, Codex, Windsurf, Copilot, Gemini CLI, and more
  • Multi-source - pulls from GitHub, GitLab, Bitbucket, Codeberg including self-hosted and enterprise
  • MCP management - merges MCP servers into each agent's native settings file automatically
  • Global and project scopes - install skills globally or per-project, each with its own lockfile
  • CI-friendly - --dry-run to preview, --json for automation, non-zero exit on failure
  • Single binary - no runtime dependencies, written in Rust, fast cold starts

How It Works

Define your config:

agent:
  - claude-code
  - cursor
  - codex

skills:
  - source: https://github.com/org/skill-pack
    skills: "*"
  - source: https://github.com/org/skill-pack-2
    skills:
      - product-design
  - source: https://github.com/org/skill-pack-3
    skills:
      - name: jupyter-notebook
        path: skills/.curated

mcps:
  - source: https://github.com/org/mcp-pack

Then sync:

kst sync

That's it. Kasetto pulls the skills and MCP servers, installs them into the right agent directories, and merges MCP configs into each agent's native settings file. The next time you run sync, only what changed gets updated.

Command Overview

Kasetto ships with a focused set of commands - each does exactly one thing:

kst sync              # pull skills + MCP servers and install them
kst sync --dry-run    # preview what would change without touching anything
kst sync --json       # structured output for CI pipelines

kst list              # browse installed skills and MCPs interactively
kst list --json       # dump installed state as JSON

kst init              # scaffold a kasetto.yaml in the current directory
kst doctor            # check your environment and diagnose issues

kst clean             # remove all installed skills and MCP entries
kst self update       # update kasetto to the latest release
kst self uninstall    # remove kasetto and all its files
kst completions       # generate shell completions (bash, zsh, fish, etc.)

The binary is available as both kasetto and kst - the short alias makes daily use quick.

Install

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/pivoshenko/kasetto/main/scripts/install.sh | sh

Homebrew
brew install pivoshenko/tap/kasetto

Cargo
cargo install kasetto

What's Next

The roadmap includes agents management and hooks management. If you have ideas or run into issues, open an issue - feedback from real users shapes the direction.


github.com/pivoshenko/kasetto

If kasetto saves you time, a GitHub star means a lot. And drop a comment below - I'd love to hear what your AI agent setup looks like today, and what pain points you're still hitting.

1 Comment

2 votes
1
1

More Posts

Agent Action Guard

praneeth - Mar 31

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelskiverified - Mar 19

The Re-Soloing Risk: Preserving Craft in a Multi-Agent World

Tom Smithverified - Apr 14

Defending Against AI Worms: Securing Multi-Agent Systems from Self-Replicating Prompts

alessandro_pignati - Apr 2

AI Reliability Gap: Why Large Language Models are not for Safety-Critical Systems

praneeth - Mar 31
chevron_left

Related Jobs

View all jobs →

Commenters (This Week)

4 comments
3 comments
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!