Skip to content

Welcome to Starkite

Starkite is a runtime for automating systems and infrastructure with scripts written in Starlark — a small, predictable dialect of Python created for Bazel. It targets the jobs that otherwise turn into fragile shell scripts or over-privileged Python: managing container lifecycles over daemon sockets, deploying to Kubernetes clusters, orchestrating server fleets over SSH, calling HTTP APIs, or giving an AI agent a controlled set of actions.

Why Starlark?

Starlark will look familiar — it reads like Python, so if you already know Python you can read a Starkite script on sight. The difference is what it leaves out: no while loops, no recursion, no classes, and no mutable global state. Those constraints are what let a script run the same way every time, which is also what makes it safe to run code you didn't write yourself.

See Language for the full picture, or the Starlark spec for the language definition.

Next Steps

Install the runtime and write your first script. When you want to understand how the pieces fit together, the fundamentals come next.

  • Install


    Build from source, pull a release, or run the container image.

    Install

  • First script


    Write and run your first Starkite script.

    First script

  • Fundamentals


    Language, modules, configuration, security, testing, editions.

    Fundamentals

  • Core modules


    System, logging, files, JSON/YAML, SSH, HTTP.

    Core modules

  • Cloud-Native


    Orchestrate local container engines (Docker/Podman), remote server fleets over SSH, and Kubernetes clusters through unified Starlark modules.

    Cloud-Native

  • AI & MCP Support


    Expose deterministic tools and serve Model Context Protocol endpoints.

    MCP Support

  • References


    CLI and API catalogs.

    References