A Starkit is a wrapping mechanism for delivering an application in a self-contained, installation-free, and highly portable way. The name comes from being based on a StandAlone Runtime, called Tclkit.

A Starkit creates the illusion of a "file system in a file" - on the outside, it's a single file, yet the application code continues to see a complete directory of scripts, extensions, packages, images, and whatever other files it needs. Starkits can be multi-platform. And they can be written to, due to the underlying Metakit database.


Starkits are widely being adopted for deploying Tcl/Tk-based applications:

Many starkits are available in the /pub/sk/ area on this server. For a snapshot of the Starkit Deverloper Archive (which used to be at mini.net/sdarchive), see /pub/om/.

Why the buzz?

An excellent paper describing what it's all about, is Steve Landers' "Beyond Tclkit - Starkits, Starpacks, and other *stuff", presented at the 2002 Tcl/Tk conference.

Getting up to speed with Starkits, i.e. deploying an application as a Starkit if you're a developer, is covered quite well by the above documentation. Still, there's a lot of additional ground to cover if you want to merge your development and deployment work seamlessly, or if you need to build multi-platform starkits, loadable extensions, or add things like embedded help, graphics, or other datafiles.


Starkits require Tcl 8.4 or later (older releases, and the term "Scripted Document", are deprecated). You also need a few other packages, which are all part of the self-contained Tclkit runtime (as well as included in ActiveTcl). The SDX utility has a few convenient options to create, inspect, and unravel Starkits.

See the introduction page on how to get started with Starkits and Tclkit.

See also the technical details about How Starkits are mapped to Metakit views.