No description
- Go 95.9%
- Svelte 2.5%
- TypeScript 1.1%
- Shell 0.3%
- Dockerfile 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Build xms2db / coverage (push) Successful in 3m6s
/ coverage (push) Successful in 8m36s
Build xms2db / test-race (push) Successful in 10m34s
Build xms2db / build-test-1 (push) Successful in 10m52s
Build xms2db / lint (push) Successful in 11m28s
Build xms2db / build-test (push) Successful in 0s
Build xms2db / release (push) Successful in 44s
/ lint (push) Successful in 17m14s
/ build-test (push) Successful in 17m25s
Build xms2db / build-image (push) Successful in 7m41s
/ test-race (push) Successful in 25m26s
|
||
| .forgejo | ||
| cmd/xms2db | ||
| deploy/podman | ||
| docs | ||
| internal | ||
| scripts | ||
| testdata | ||
| web | ||
| .containerignore | ||
| .env.example | ||
| .gitignore | ||
| .golangci.yml | ||
| .tagme-authors.json | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| cliff.toml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| mise.toml | ||
| README.md | ||
| SECURITY.md | ||
| TODO.md | ||
| UI-REVIEW.md | ||
| USER-GUIDE.md | ||
xms2db (Go)
Go tool to import, search, and export Android SMS/MMS/call XML backups into SQLite.
Converts SMS Backup & Restore XML files into a queryable SQLite database with full-text search, a terminal UI, repair tools, and round-trip export. --quiet, --format json, and offline-only operation make it scriptable; clig.dev-compliant.
Documentation
| Doc | Covers |
|---|---|
| USER-GUIDE.md | Full walkthrough: architecture, data model, command reference, real-world use cases |
| docs/INSTALLATION.md | Requirements, build/install, quick start |
| docs/COMMANDS.md | Command reference (import, query, search, merge, compare, repair, normalize, edit, verify, stats, thread, attachments, config, backup) |
| docs/BROWSE-TUI.md | browse — panes, view modes, key bindings |
| docs/EXPORT.md | export — flags, filters, round-trip notes |
| docs/DEDUPE-CONTACTS.md | dedupe, doctor, contacts |
| docs/CONFIGURATION.md | Global flags, .env, config.toml, browse.toml |
| docs/ARCHITECTURE.md | Package layout, database schema, security hardening |
| docs/DEPLOYMENT.md | Rootless Podman Quadlet deployment (xms2db serve behind a reverse proxy) |
| CONTRIBUTING.md | Build/test/lint, commit conventions, code style |
Quick Start
make build # binary: xms2db
cp .env.example .env # configure db path / default country
xms2db import backup.xml --country FR # import (TUI shows live progress)
xms2db browse # browse messages in the TUI
xms2db search "hello world" # full-text search
xms2db export output.xml --contact "John" --after 2024-01-01
See docs/INSTALLATION.md for requirements and more examples.
Highlights
- Browser-based web UI (
xms2db serve) — sign up, upload, browse, search, and export through a same-origin browser app served alongside the JSON API - Import SMS, MMS, and call logs from compressed backups (
.xml,.gz,.bz2,.xz,.zip) and export back to XML, with incremental resume and a live-progress TUI - Full terminal UI (
browse) for contacts, conversations, calls, and attachments — three panes, three view modes, mouse support, theming - Full-text search (FTS5), merge, compare, repair, normalize, verify, and vacuum
- Nine dedupe/repair checks (
dedupe) with an interactive review TUI, plusdoctordiagnostics andcontactsname/merge tooling - Content-addressed attachment storage with automatic deduplication across imports
- Automatic backup before any destructive operation; soft-delete with undo everywhere it makes sense
- One-command compressed backup archive (
.tar/.tar.gz/.tar.zst/.zip) bundling the database and attachments into one portable file, verified for integrity after write
See the docs table above for full detail on every command and subsystem.
License
Licensed under the GNU General Public License v3.0 or later.
Contributions are welcome — see CONTRIBUTING.md and the Code of Conduct. Report security issues per SECURITY.md rather than as a public issue.
Report issues: https://git.desord.re/eofredj/xms2db-go/issues