# Install tcl-tk with Homebrew, apk, apt, MacPorts, Nix, scoop, zypper

Tool Command Language. Version 9.0.3 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:tcl-tk
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install tcl-tk
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install critcl
```

  Evidence: MacPorts ports tree: lang/critcl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add critcl
```

  Evidence: Alpine Linux edge package indexes: critcl from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install critcl
```

  Evidence: Debian stable package indexes: critcl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#page
```

  Evidence: nixpkgs package indexes: pkgs/by-name/pa/page/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install tcl
```

  Evidence: openSUSE Tumbleweed package metadata: tcl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/pt
```

  Evidence: Scoop official bucket manifest trees: bucket/pt.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:tcl-tk
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/tcl-tk>
- **Version:** 9.0.3
- **Source summary:** Tool Command Language
- **Homepage:** <https://www.tcl-lang.org>
- **Repository:** <https://core.tcl-lang.org/tcl>
- **Upstream docs:** <https://www.tcl-lang.org/doc>
- **License:** TCL
- **Source archive:** <https://downloads.sourceforge.net/project/tcl/Tcl/9.0.3/tcl9.0.3-src.tar.gz>
- **Last updated:** 2026-06-22T14:06:26-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- critcl (cli)
- dtplite (cli)
- mkdoc (cli)
- nns (cli)
- nnsd (cli)
- nnslog (cli)
- page (cli)
- pt (cli)
- tcldocstrip (cli)
- tclsh (cli)
- tclsh9.0 (cli)
- wish (cli)
- wish9.0 (cli)
- critcl (alias)
- dtplite (alias)
- mkdoc (alias)
- nns (alias)
- nnsd (alias)
- nnslog (alias)
- page (alias)
- pt (alias)
- tcldocstrip (alias)
- tclsh (alias)
- tclsh9.0 (alias)
- wish (alias)
- wish9.0 (alias)

## Dependencies

- libtommath
- openssl@3

## Install behavior

- Post-install hook: not defined
- Caveats: The sqlite3_analyzer binary is in the `sqlite-analyzer` formula.
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 9.0.3
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://www.tcl-lang.org
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Tcl/Tk combines the Tcl embeddable scripting language with the Tk GUI toolkit, giving Unix and cross-platform software a scriptable command language and a portable desktop UI toolkit.

### Project history

John Ousterhout's official history traces Tcl to Berkeley design-tool work in the early 1980s and to a 1987 idea for a reusable embeddable command language. He began implementation in 1988, and the name Tcl came from its role as a Tool Command Language.

Tk grew from the same design philosophy: Ousterhout wanted reusable GUI components that could be integrated by a scripting language. Work on Tk began in the late 1980s, with the first Internet release following conference presentations in January 1991.

The modern Tcl/Tk project is maintained through canonical source repositories at core.tcl-lang.org. As of the official 2026 project pages, Tcl/Tk 9.0 is the current major release, while Tcl/Tk 8.6 remains a legacy release line.

### Adoption history

Tcl spread through early Unix and Internet distribution channels. Ousterhout describes giving out early copies in 1989, presenting Tcl at USENIX in January 1990, and then making source freely available from Berkeley FTP.

Expect was an early breakthrough application: Don Libes built it on Tcl after hearing the USENIX talk, and it became especially popular with system administrators. Tk then accelerated adoption by making Unix GUI development much easier than C-based toolkits such as Motif.

The Tcl project site still positions Tcl as useful for web and desktop applications, networking, administration, testing, and other cross-platform integration work.

### How it is used

Package-manager users install Tcl/Tk for the tclsh interpreter, the wish Tk shell, Tk-based applications, build-time scripting, test harnesses, and the long tail of Tcl extensions and tools.

In Homebrew, the current tcl-tk formula tracks the modern upstream line, exposing versioned executables such as tclsh9.0 and wish9.0 alongside Tcl ecosystem helper commands.

### Why package nerds care

Tcl/Tk matters in package culture because it is both runtime and dependency infrastructure: old Unix software, Tk GUI programs, Expect-style automation, and extension build systems often assume a working Tcl installation.

It is also a reminder that package managers preserve compatibility layers. Tcl/Tk is mature software, but the split between current 9.x and legacy 8.6 lines makes versioned formulas important for users who need old extensions or newer language/runtime behavior.

### Timeline

- 1987: Ousterhout conceived Tcl as an embeddable command language.
- 1988: Tcl implementation began at Berkeley.
- 1989: Early copies of Tcl were distributed to interested users.
- 1990: Tcl was presented at USENIX and made freely available by FTP.
- 1991: Tk had its first Internet release after USENIX and X Conference presentations.
- 2012: Tcl/Tk 8.6 first released, according to the official 8.6 page.
- 2024: Tcl/Tk 9.0 became the successor major release line.
- 2026: Tcl/Tk 9.0.4 and 8.6.18 listed as current official source releases.

### Related projects

- Tk is the GUI toolkit paired with Tcl and is released with it.
- Expect, Tcllib, Tklib, TclOO, Thread, and TDBC are part of the broader Tcl ecosystem documented by the core development site.

### Sources

- <https://core.tcl-lang.org/index.html>
- <https://www.tcl-lang.org/>
- <https://www.tcl-lang.org/about/history.html>
- <https://www.tcl-lang.org/software/tcltk/8.6.html>
- <https://www.tcl-lang.org/software/tcltk/9.0.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** tcl-tk
- **Aliases:** tcl-tk@9
- **Version Scheme:** 0
- **Revision:** 0
- **Conflicts With:** page, the_platinum_searcher
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- MacPorts - critcl: installed executable or alias match | MacPorts ports tree: lang/critcl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Debian apt - critcl - 3.3.1+dfsg-1: installed executable or alias match | Debian stable package indexes: critcl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | compiled runtime in Tcl | https://andreas-kupries.github.com/critcl/
- Nix - page: installed executable or alias match | nixpkgs package indexes: pkgs/by-name/pa/page/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Nix - pt: installed executable or alias match | nixpkgs package indexes: pkgs/by-name/pt/pt/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - critcl - 3.1.18.1+dfsg-3: installed executable or alias match | Ubuntu 24.04 LTS package indexes: critcl from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | compiled runtime in Tcl | https://andreas-kupries.github.com/critcl/
- apk - critcl - 3.3.1-r1: installed executable or alias match | Alpine Linux edge package indexes: critcl from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Compiled Runtime in Tcl | https://andreas-kupries.github.io/critcl/
- apk - critcl-doc - 3.3.1-r1: installed executable or alias match | Alpine Linux edge package indexes: critcl-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Compiled Runtime in Tcl (documentation) | https://andreas-kupries.github.io/critcl/
- zypper - tcl - 8.6.18-1.1: installed executable or alias match | openSUSE Tumbleweed package metadata: tcl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | The Tcl Programming Language | http://www.tcl.tk
- zypper - tk - 8.6.18-1.1: installed executable or alias match | openSUSE Tumbleweed package metadata: tk from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Graphical User Interface Toolkit for Tcl | http://www.tcl.tk
- Scoop - main/pt: installed executable or alias match | Scoop official bucket manifest trees: bucket/pt.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [openssl@3](https://www.automicvault.com/pkg/brew/openssl-3/) - Runtime dependency declared by Homebrew.
- [bsc](https://www.automicvault.com/pkg/brew/bsc/) - Popular package that depends on this formula.
- [gensio](https://www.automicvault.com/pkg/brew/gensio/) - Popular package that depends on this formula.
- [git-gui](https://www.automicvault.com/pkg/brew/git-gui/) - Popular package that depends on this formula.
- [lmod](https://www.automicvault.com/pkg/brew/lmod/) - Popular package that depends on this formula.
- [modules](https://www.automicvault.com/pkg/brew/modules/) - Popular package that depends on this formula.
- [openmsx](https://www.automicvault.com/pkg/brew/openmsx/) - Popular package that depends on this formula.
- [tcl-tk@8](https://www.automicvault.com/pkg/brew/tcl-tk-8/) - Package name indicates the same formula family.
- [gravity](https://www.automicvault.com/pkg/brew/gravity/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, runtime.
- [icon](https://www.automicvault.com/pkg/brew/icon/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, runtime.
- [minimal-racket](https://www.automicvault.com/pkg/brew/minimal-racket/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, runtime.
- [perl](https://www.automicvault.com/pkg/brew/perl/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, runtime.
- [php](https://www.automicvault.com/pkg/brew/php/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, runtime.
- [snobol4](https://www.automicvault.com/pkg/brew/snobol4/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, runtime.
- [agda](https://www.automicvault.com/pkg/brew/agda/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [algol68g](https://www.automicvault.com/pkg/brew/algol68g/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.

## Combined YAML source

View the package source record on GitHub. [combined/tcl-tk.yml](https://github.com/automic-vault/db/blob/main/combined/tcl-tk.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
