Command-line tool for the TLTV Federation Protocol.
Single static binary, zero dependencies.
curl -sSL https://raw.githubusercontent.com/tltv-org/cli/main/install.sh | sh
Or with Docker:
docker run --rm -v tltv-keys:/data -p 8000:8000 tltv bridge \
--stream http://provider.example.com/channels.m3u
Or from source (go install github.com/tltv-org/cli@latest). See docs/install.md for all options.
# Generate a channel identity
tltv keygen
# Mine a vanity channel ID
tltv vanity cool
# Sign a metadata document
tltv template metadata > meta.json
tltv sign -k <channel-id>.key --auto-seq < meta.json > signed.json
# Bridge external streams as TLTV channels
tltv bridge --stream http://provider.com/channels.m3u --guide http://provider.com/guide.xml
# Relay channels from another node
tltv relay --node origin.example.com:443
# Generate a test signal
tltv server test --name "My Channel" -k channel.key
# Watch a channel
tltv viewer demo.timelooptv.org
| Command |
Description |
keygen |
Generate Ed25519 keypair and channel ID |
vanity <pattern> |
Mine channel IDs matching a pattern (multi-threaded) |
inspect <id> |
Decode and validate a channel ID |
| Command |
Description |
sign |
Sign a JSON document with Ed25519 (-k, --auto-seq) |
verify |
Verify a signed document's signature and protocol version |
template |
Output a JSON template (metadata, guide, migration) |
| Command |
Description |
parse <uri> |
Parse a tltv:// URI into components |
format <id> |
Build a tltv:// URI from channel ID and hints |
| Command |
Description |
resolve <uri> |
End-to-end URI resolution with migration chain following |
node <host> |
Fetch node info from /.well-known/tltv |
fetch <target> |
Fetch and verify channel metadata |
guide <target> |
Fetch and verify channel guide (--xmltv for XML output) |
peers <host> |
Fetch peer exchange list |
stream <target> |
Check stream availability (--url for bare URL output) |
crawl <host> |
BFS-crawl the gossip network (--depth for max depth) |
| Command |
Description |
server test |
SMPTE color bar test signal generator (docs) |
bridge |
Origin server for external streams (docs) |
relay |
Caching relay with signature verification (docs) |
receiver |
Headless HLS consumer (--monitor, --record, --pipe) |
viewer |
Local web viewer with HLS.js player |
loadtest |
Multi-receiver load simulator |
| Command |
Description |
migrate |
Create a signed key migration document |
update |
Self-update to latest GitHub release |
completion |
Shell completions (--install for auto-install) |
version |
Version, protocol version, platform info |
| Flag |
Description |
--json / -j |
Machine-readable JSON output |
--no-color / -C |
Disable colored output (also respects NO_COLOR) |
--insecure / -I |
HTTP transport, skip TLS verification |
--local / -L |
Allow local/private address hints in resolve and crawl |
Global flags work before or after the subcommand: tltv --json fetch ... and tltv fetch --json ... are equivalent.
Validated against all 7 test vector suites from the protocol specification (C1–C7: identity encoding, signing, documents, URIs, guides, invalid inputs, migration). 350 tests. Run make test to verify.
MIT — see LICENSE.