tiny

command module
v0.4.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2026 License: MIT Imports: 2 Imported by: 0

README

tiny

Self-hosted AI agents on your own Kubernetes. Prompt one in your editor and it runs as real workloads. Your cluster, your keys, your data.

tiny is the local front door to the Tiny Systems agent runtime. Point it at any cluster you can kubectl into, describe an agent from your editor, and watch it build itself and run as real pods. Nothing leaves your cluster.

Early days. The runtime, SDK, operator, and modules are production-tested; this CLI is the new front door that ties them together. The roadmap says what works today and what's next.


The idea

Most agent frameworks are a Python library, a hosted API, or a Docker-Compose box. tiny is a different shape: an agent is a set of real Kubernetes workloads the operator reconciles, and you build it by prompting from Claude Code, Cursor, or any MCP client, instead of writing glue.

$ tiny

  ◇ tiny  self-hosted AI agents on your own Kubernetes

  ╭──────────────────────────────────────────────────────────────╮
  │  runtime   ✓ context my-cluster                              │
  │  mcp       http://localhost:7776/mcp   → point Claude Code    │
  │  editor    http://localhost:7775       → opens in your browser│
  ╰──────────────────────────────────────────────────────────────╯

  prompt in your editor; the canvas mirrors it live.

One process serves both surfaces: the MCP endpoint your editor drives, and the browser editor that mirrors what the agent builds, live, over the same cluster state. You prompt on the left and watch it materialize on the right.

Why self-hosted

  • Your cluster. Agents run where your data already lives, with no round-trip to someone else's cloud.
  • Your keys. LLM calls use the key you set on the agent. tiny never holds it.
  • Real workloads. Every capability is a Helm-installable module reconciled by an operator, not a function in a hosted sandbox. kubectl get pods shows you your agent.
  • Empty to running. Start from a bare kind, k3s, or cloud cluster. tiny up provisions the broker, the operator, and a core set of modules. Anything else installs on demand, including automatically when a prompt-built agent reaches for a capability it doesn't have yet.

Install

# Homebrew
brew install tiny-systems/tap/tiny

# or grab a binary from Releases, or:
go install github.com/tiny-systems/tiny@latest

Update later with tiny upgrade (or brew upgrade tiny for Homebrew installs).

Quick start

tiny up            # provision the runtime onto your current cluster (asks first)
tiny               # serve it — auto-connects Claude Code, then build by prompt

tiny auto-adds the endpoint to Claude Code on start (as tiny); pass --no-register to skip, or tiny --print to just see the client config.

Then, in your editor: "an HTTP endpoint that summarizes the JSON I POST and alerts Slack if the sentiment is negative" — and watch it build on the canvas.

Commands

command what it does
tiny serve the local MCP endpoint (+ browser editor, soon) and auto-connect Claude Code
tiny up provision the runtime (NATS/JetStream broker + operator + core modules)
tiny install <module> add a capability module from the public catalog (e.g. tiny install http-module)
tiny status show the runtime + installed modules on the target cluster
tiny --print print the MCP client config and exit (don't serve)
tiny edit [flow] open the web canvas against your cluster

Every mutating command shows the exact context and namespace it will touch and asks before it acts. Pass --yes to skip in CI, or --context / --namespace to target explicitly.

How it fits together

  • The operator reconciles agents into workloads and installs capability modules as Helm releases.
  • Modules are the capabilities: LLM, HTTP, Kubernetes, databases, Slack, and more, each a small Go service the agent composes.
  • MCP is the prompt surface. tiny serves it locally against your kubeconfig; the hosted platform serves the same tools at mcp.tinysystems.io for teams.
  • The editor is the trust layer. You watch and inspect what you didn't hand-write.

The runtime and SDK are open source. The hosted platform adds a team layer (shared workspaces, observability across clusters, managed clusters) for those who want it. tiny needs none of it.

Roadmap

  • v0.1up / install / status against your cluster, with the target-confirmation guard. Turn an empty cluster into a working runtime from your terminal.
  • v0.2tiny (dev): the live MCP endpoint and editor in one process, streaming agent activity into the terminal as your editor drives. This is the point where prompt-built agents run on your own cluster with no hosted account.
  • v0.3 — the local canvas (tiny edit), which retires the separate desktop app.

Follow along or open an issue. This is being built in the open.

License

MIT. Depends on the Tiny Systems Module SDK.

Documentation

Overview

Command tiny is the local front door to the Tiny Systems agent runtime: install it onto your own Kubernetes cluster, drive it by prompt from your editor, and watch agents assemble and run as real workloads — your cluster, your keys, your data.

Directories

Path Synopsis
internal
backend
Package backend selects between the two ways mcp-server can talk to a Tiny Systems cluster: directly via kubeconfig, or indirectly through the hosted platform-api with a developer token.
Package backend selects between the two ways mcp-server can talk to a Tiny Systems cluster: directly via kubeconfig, or indirectly through the hosted platform-api with a developer token.
backend/kube
Package kube builds the mcp-server execution bundle using direct Kubernetes access via kubeconfig.
Package kube builds the mcp-server execution bundle using direct Kubernetes access via kubeconfig.
catalog
Package catalog resolves a module NAME to the coordinates `tiny` needs to install it, using the public, unauthenticated Tiny Systems catalog at api.tinysystems.io.
Package catalog resolves a module NAME to the coordinates `tiny` needs to install it, using the public, unauthenticated Tiny Systems catalog at api.tinysystems.io.
flow
Package flow is tiny's local implementation of the platform FlowService — the gRPC/gRPC-web API the browser editor talks to.
Package flow is tiny's local implementation of the platform FlowService — the gRPC/gRPC-web API the browser editor talks to.
installer
Package installer implements sdktools.ModuleInstaller for kubeconfig mode: it lets an agent install a capability module on the fly, mid-build, through the MCP endpoint — resolving from the configured repos (default: the public index) and helm-installing via the exact same repo-model path as `tiny install`.
Package installer implements sdktools.ModuleInstaller for kubeconfig mode: it lets an agent install a capability module on the fly, mid-build, through the MCP endpoint — resolving from the configured repos (default: the public index) and helm-installing via the exact same repo-model path as `tiny install`.
kube
Package kube wires up the Kubernetes client used by all adapters.
Package kube wires up the Kubernetes client used by all adapters.
mcp
Package mcp implements a minimal Model Context Protocol server.
Package mcp implements a minimal Model Context Protocol server.
project
Package project resolves the active project for a tiny session.
Package project resolves the active project for a tiny session.
prompt
Package prompt holds the public-MCP-specific appendix that is appended to the SDK's core prompt when get_instructions is called.
Package prompt holds the public-MCP-specific appendix that is appended to the SDK's core prompt when get_instructions is called.
provision
Package provision installs the Tiny Systems runtime and capability modules onto a cluster by embedding the Helm Go SDK (via mittwald's go-helm-client) — no shelling out to a `helm` binary, no hosted platform.
Package provision installs the Tiny Systems runtime and capability modules onto a cluster by embedding the Helm Go SDK (via mittwald's go-helm-client) — no shelling out to a `helm` binary, no hosted platform.
repo
Package repo implements the decentralized, Helm-style module distribution client described in docs/design/module-distribution-v2.md: repos are static index files, the source of truth is the module repo + its signed image, and the platform is demoted to an optional aggregator.
Package repo implements the decentralized, Helm-style module distribution client described in docs/design/module-distribution-v2.md: repos are static index files, the source of truth is the module repo + its signed image, and the platform is demoted to an optional aggregator.
Package web embeds the built flow-editor SPA (a thin host around @tinysystems/editor) and serves it as an http.Handler.
Package web embeds the built flow-editor SPA (a thin host around @tinysystems/editor) and serves it as an http.Handler.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL