Releases: tamnd/tiktok-cli
v0.2.1
tt now prints in color when it writes to a terminal. A table comes out inside
a rounded border with colored headers, and JSON output has its keys and values
colorized. Pipe the output into a file or another command and it stays plain, so
nothing downstream sees escape codes.
This comes from upgrading the any-cli/kit
framework to v0.3.3, whose renderer now draws tables with lipgloss. Nothing
changed about what tt reads or about any record; only how a terminal shows it.
A wide table also shrinks to fit the terminal width now instead of wrapping.
Control the color
tt user tiktok # colored table on a terminal
tt user tiktok --color never # force plain
tt user tiktok --color always # force color even through a pipe
tt user tiktok | less -R # less shows the color with -RFull notes: https://tiktok-cli.tamnd.com/release-notes/v0-2-1/
Install
go install github.com/tamnd/tiktok-cli/cmd/tt@latest
docker run --rm ghcr.io/tamnd/tiktok:0.2.1 --helpPure-Go binaries for Linux, macOS, Windows, and FreeBSD, plus deb/rpm/apk
packages, a multi-arch GHCR image, checksums, SBOMs, and a cosign signature.
v0.2.0
tt now runs on the any-cli/kit framework.
The commands and the records they print are the same. What changed is that each
command is declared once and now drives the command line, an HTTP server, an MCP
tool set, and a resource-URI driver from that single declaration.
Serve the same commands
tt serve --addr :7777 # GET /v1/user/<handle> returns NDJSON
tt mcp # speak MCP over stdiott mcp lets an agent call video, user, posts, search, and the rest as
tools. tt serve puts the same operations behind a small HTTP surface.
Use tt as a resource-URI driver
The package registers a tiktok domain the way a program registers a database
driver with database/sql. A host enables it with one blank import:
import _ "github.com/tamnd/tiktok-cli/tiktok"Then ant dereferences tiktok:// URIs:
ant get tiktok://user/tiktok # the profile record
ant get tiktok://video/7106594312292453675 # one video
ant ls tiktok://user/tiktok # the user's videos
ant cat tiktok://video/7106594312292453675 # just the description text
ant url tiktok://hashtag/minecraft # the live https URLStore any run
tt posts @tiktok --db posts.dbEvery command can tee its records into a SQLite file as it prints them.
Flag and exit code changes
--ratereplaces--delayfor the minimum spacing between requests.--dbtees records into a store, and--profileselects a saved profile.--jobsis gone; the read commands page in order rather than fan out.- A missing handle, video, hashtag, or sound now exits 6 (not found)
instead of folding into the empty-result code. Walled surfaces still exit 4,
and a valid empty result still exits 3.
Full notes: https://tiktok-cli.tamnd.com/release-notes/v0-2-0/
Install
go install github.com/tamnd/tiktok-cli/cmd/tt@latest
docker run --rm ghcr.io/tamnd/tiktok:0.2.0 --helpPure-Go binaries for Linux, macOS, Windows, and FreeBSD, plus deb/rpm/apk
packages, a multi-arch GHCR image, checksums, SBOMs, and a cosign signature.
v0.1.0
The first public release. tt is a single pure-Go binary that reads public
TikTok data and prints clean, pipeable records. No API key, no login. It reads
the same public surface a logged-out browser sees: the universal-data blob each
page ships, and the www.tiktok.com/api/* endpoints the page's own JavaScript
calls, signed the way the web client signs them.
What you get
- Read one thing.
tt videoandtt userpull a single video or profile
record from the page's own JSON, with author, sound, hashtags, urls, and every
counter. - Page a feed.
tt posts,tt comments,tt replies, andtt trending. - Search.
tt searchfor mixed video and user hits,tt usersfor accounts. - Hashtags and sounds.
tt hashtagandtt sound, with--videosfor the
list under each. - Discover.
tt discoverwalks the public graph from seeds and ranks the
hottest users, videos, hashtags, and sounds it reaches. - See the raw page.
tt rawprints a page's whole universal-data blob.
Records come out as table, JSON, JSONL, CSV, TSV, url, or raw. --fields picks
columns, --template runs a Go template per record, -o url gives a link
stream.
Two planes
The SSR plane reads the JSON a page already ships and answers from anywhere. The
API plane is signed and sits behind a firewall that scores the caller's IP, so
from a datacenter IP it is often gated. When that happens tt exits 4 with a
clear message instead of pretending it found nothing. tt discover crosses both
planes and stays honest about which edges it could not reach.
Install
go install github.com/tamnd/tiktok-cli/cmd/tt@latest
docker run --rm ghcr.io/tamnd/tiktok:0.1.0 --helpPrebuilt archives (Linux, macOS, Windows, FreeBSD), Linux packages (deb, rpm,
apk), a multi-arch GHCR image, checksums, SBOMs, and a cosign signature are
attached below. Full notes: https://tiktok-cli.tamnd.com/release-notes/v0-1-0/