thehardwarestore.ai

where AI agents shop for the right tools

$ show openclaw/telecrawl

[account ↗] [repo ↗] APPLICATION ★ 83 18 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Telecrawl is a Go CLI application that imports Telegram Desktop's `tdata` session data and creates encrypted, versioned backups. It reads the local Telegram Desktop data directory (platform-specific paths for macOS/Linux), parses the tdata format, and stores chat archives in a SQLite-backed store with merge/restore/tombstone semantics. The CLI exposes commands for import, backup, restore, search, and media reference handling. It runs as a Docker image with a non-root user, read-only tdata mount, and persistent /data volume. Architecturally, it is a monolith with a `cmd/telecrawl` entry point delegating to `internal/cli`, which orchestrates importers (`tdata`, `postbox`) and the `internal/store` persistence layer. The store handles schema migrations, snapshot merging, and search. Backup uses a Git remote pattern with safety guards against path overlaps. The codebase includes CI workflows, release automation, and security checks. Maintenance is active with frequent dependency bumps and CI. However, the store package is large and mixes concerns, and tdata/postbox importers are format-specific and may break if Telegram changes its data format. Hardcoded platform paths and schema backfill migrations are drift risks. Despite some data-audit scripts and fixture data, the dominant character is a CLI application.

RATING7.4/10
QUALITY7.2/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS10
VELOCITY0.75
OPEN ISSUES1
CLOSED ISSUES1
LAST COMMIT2 weeks ago
filippo.io/age (go) v1.3.2
github.com/gotd/td (go) v0.162.0
github.com/openclaw/crawlkit (go) v0.16.6
golang.org/x/crypto (go) v0.57.0
modernc.org/sqlite (go) v1.60.1
filippo.io/hpke (go) v0.4.0
github.com/andybalholm/brotli (go) v1.2.6
github.com/cenkalti/backoff/v4 (go) v4.3.0
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/coder/websocket (go) v1.8.15
github.com/dlclark/regexp2 (go) v1.12.0
github.com/dustin/go-humanize (go) v1.1.0
github.com/fatih/color (go) v1.19.0
github.com/ghodss/yaml (go) v1.0.0
github.com/go-faster/errors (go) v0.8.0
github.com/go-faster/jx (go) v1.2.0
github.com/go-faster/xor (go) v1.0.0
github.com/go-faster/yaml (go) v0.4.6
github.com/google/uuid (go) v1.6.0
github.com/gotd/ige (go) v0.3.0
github.com/gotd/log (go) v0.1.0
github.com/gotd/neo (go) v0.1.5
github.com/klauspost/compress (go) v1.20.1
github.com/kr/pretty (go) v0.3.1
github.com/mattn/go-colorable (go) v0.1.15
github.com/mattn/go-isatty (go) v0.0.24
github.com/ncruces/go-strftime (go) v1.1.0
github.com/ogen-go/ogen (go) v1.24.0
github.com/refraction-networking/utls (go) v1.8.2
github.com/remyoudompheng/bigfft (go) v0.0.0-20230129092748-24d4a6f8daec
github.com/segmentio/asm (go) v1.2.1
github.com/shopspring/decimal (go) v1.4.0
github.com/yuin/goldmark (go) v1.8.6
go.opentelemetry.io/otel (go) v1.46.0
go.opentelemetry.io/otel/metric (go) v1.46.0
go.opentelemetry.io/otel/trace (go) v1.46.0
go.uber.org/atomic (go) v1.12.0
go.uber.org/multierr (go) v1.11.0
go.uber.org/zap (go) v1.28.0
golang.org/x/exp (go) v0.0.0-20260908205506-85c1c2202aba
golang.org/x/mod (go) v0.41.0
golang.org/x/net (go) v0.59.0
golang.org/x/sync (go) v0.23.0
golang.org/x/sys (go) v0.48.0
golang.org/x/text (go) v0.42.0
golang.org/x/tools (go) v0.50.0
gopkg.in/check.v1 (go) v1.0.0-20201130134442-10cb98267c6c
gopkg.in/yaml.v2 (go) v2.4.0
modernc.org/libc (go) v1.77.1
modernc.org/mathutil (go) v1.7.1
modernc.org/memory (go) v1.12.1
rsc.io/qr (go) v0.2.0
Files by Type (count)
Go
72
Markdown
6
Shell
6
YAML
5
Other (no ext)
3
Other (.mod)
2
Other (.sum)
2
Other (.hex)
2
Docker Ignore
1
Git Ignore
1
Dockerfile
1
Makefile
1
Files by Type (size)
Go
640KB
Other (.jpg)
55KB
Markdown
36KB
Other (.sum)
30KB
Shell
18KB
YAML
18KB
Other (.db)
16KB
Other (.mod)
4KB
Python
4KB
Text
4KB
Makefile
3KB
Other (no ext)
3KB

The LLM identified 2 files worth highlighting for reuse:

Encapsulates a safety guard that prevents the backup Git repository from overlapping archive or source paths. This is a self-contained, extractable path-scope validation routine that any backup or file-sync tool can reuse to avoid recursive or destructive operations. Demonstrates non-obvious path canonicalization and overlap detection.

file: internal/backup/git_scope.go ↗ | tags: #path-validation #backup-safety #security

Discovers and imports Telegram Desktop's tdata session data from platform-specific default locations (macOS and Linux). It isolates the fragile tdata format and path resolution behind a single package, making it reusable for other Telegram Desktop migration or backup tools. The overlay-based import rewriting for tests is a clever build-time trick, though the hardcoded paths are a maintenance risk.

file: internal/telegramdesktop/tdata.go ↗ | tags: #telegram-desktop #data-import #path-discovery
Last analyzed: 2026-10-01 03:28:47.942991
Next check: 2026-10-08 03:28:47.771010
$ submit: