Skip to content
Developer Preview — APIs and language features may change before 1.0

Kits

Kits are pre-built collections of mashin machines for common workflows. Each kit is a krate you can use directly or compose into your own machines.

A kit gives you tested, governed machines with proper permissions, inputs, outputs, and tests already defined. You call kit machines with ask ... from the same way you call any other machine.

ask answer, from: "@mashin/kits/rag/ask"
question: input.question
collection: "docs"

Available Kits

KitNamespacePurpose
RAG@mashin/kits/ragKnowledge bases with document ingestion, semantic search, and question answering
Legal@mashin/kits/legalContract analysis, compliance review, NDA triage, litigation support
Evaluation@mashin/kits/evaluationLLM output judging and quality scoring
Reasoning@mashin/kits/reasoningChain-of-thought, self-reflection, tree-of-thought, ReAct loops
Governance@mashin/kits/governancePlan-approve-execute, quorum decisions
A2A@mashin/kits/a2aAgent-to-agent delegation, supervision, negotiation
Content@mashin/kits/contentDeep research, content pipelines
Data@mashin/kits/dataCSV/JSON transforms, text-to-SQL, time series analysis

Using a kit

Install a kit from the registry:

Terminal window
mashin add @mashin/kits/rag

Then call its machines in your own:

machine my_qa_bot
accepts
question as text, is required
responds with
answer as text
sources as list
implements
ask answer, from: "@mashin/kits/rag/ask"
question: input.question
collection: "my_docs"

Building your own kits

A kit is just a krate with multiple machines. Create a mashin.toml at the root, list your machines, and publish:

[project]
name = "my-kit"
namespace = "@myorg"
version = "1.0.0"
[machines]
ingest = "ingest.mashin"
search = "search.mashin"

Each machine in the kit has its own accepts, responds with, ensures, and verifies sections. Kits compose naturally: one kit machine can call another with ask ... from.