tar is a Tcllib package for handling tar data.
To work with a gzipped tar file:
set chan [open myfile.tar.gz] zlib push gunzip $chan set data [::tar::get $chan some_file_in_tarball] close $chan
#! /bin/env tclsh package require tar set chan [open somefile.tar.gz w] zlib push gzip $chan tar::create $chan [list of files] -chan