revoco

command module
v0.1.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2026 License: GPL-3.0 Imports: 6 Imported by: 0

README

revoco

revoco logo

Data liberation tool for escaping big tech walled gardens.

Early Development — This software is not yet ready for general use. Running it means contributing to its development. Expect rough edges, breaking changes, and incomplete features. Feedback and contributions welcome!


What it does

Revoco helps you take back control of your data by importing from cloud services and exporting to storage you own. Currently focused on Google services (Drive, Photos Takeout), with more connectors planned.


Current Features

  • Google Drive connector — OAuth2 authentication, file listing, Google Docs/Sheets/Slides export to local formats
  • Google Photos Takeout processing — EXIF metadata repair, GPS coordinates, motion photo extraction
  • Local connectors — Folder, ZIP, and TGZ archive import with copy/move/reference modes
  • Connection testing — Verify connector access before starting operations
  • Full-screen TUI — Dashboard, connector wizards, progress tracking, cancellation support
  • Self-contained builds — Optional exiftool and ffmpeg bundling

Architecture

Connectors

Modular data sources and destinations. Each connector can act as:

  • Input — Primary data source for import
  • Output — Destination for processed data
  • Fallback — Secondary source for repairing missing files
Processors

Transform data between import and export: metadata extraction, format conversion, deduplication, organization.

Sessions

Track import/export operations with versioned schemas, connector configurations, and processing state.


Update Channels

Revoco offers two release channels:

  • Stable (default) — Production-ready releases, fully tested. Recommended for most users.
  • Dev — Bleeding edge builds from the develop branch. Multiple releases per day. For contributors, testers, and users who want the latest features.

The dev channel receives updates via GitHub Releases and Docker only (package managers remain stable-only).


Installation

Quick Install (Linux/macOS)
# Stable channel (default)
curl -fsSL https://raw.githubusercontent.com/fulgidus/revoco/main/install.sh | bash

# Dev channel
curl -fsSL https://raw.githubusercontent.com/fulgidus/revoco/main/install.sh | bash -s -- --channel dev
macOS (Homebrew)
brew tap fulgidus/revoco && brew install revoco
Linux
Homebrew
brew tap fulgidus/revoco && brew install revoco
Debian / Ubuntu (apt)

Download the .deb package from GitHub Releases.

sudo dpkg -i revoco_*.deb
Fedora / RHEL (dnf)

Download the .rpm package from GitHub Releases.

sudo rpm -i revoco_*.rpm
Arch Linux (AUR)
yay -S revoco-bin  # or paru -S revoco-bin
Windows
Scoop
scoop bucket add revoco https://github.com/fulgidus/scoop-revoco && scoop install revoco
Chocolatey
choco install revoco
Winget
winget install fulgidus.revoco
Container (Docker)
# Stable channel (default)
docker pull ghcr.io/fulgidus/revoco:latest
docker run -it --rm -v "$(pwd):/data" ghcr.io/fulgidus/revoco:latest

# Dev channel
docker pull ghcr.io/fulgidus/revoco:dev
docker run -it --rm -v "$(pwd):/data" ghcr.io/fulgidus/revoco:dev
From Source
Go Install
go install github.com/fulgidus/revoco@latest
Build Manual
# Requires Go 1.23+
git clone https://github.com/fulgidus/revoco.git
cd revoco
make build

# Or with bundled exiftool + ffmpeg
make bundle

Usage

# Launch TUI
revoco

# Non-interactive processing
revoco process --source ~/Takeout --dest ~/Photos

# Check for updates
revoco update

# Install the latest version
revoco update --install
Plugin Management
# List installed plugins
revoco plugins list

# Search for plugins
revoco plugins search csv

# Install a plugin
revoco plugins install <plugin-id>

# Update plugins
revoco plugins update --all
Configuration
# Show current config
revoco config show

# Enable automatic update checks
revoco config set updates.auto-check true

# Enable automatic plugin updates
revoco config set plugins.auto-update true
Switching Channels

CLI:

# Switch to dev channel
revoco config set updates.channel dev

# Switch back to stable
revoco config set updates.channel stable

TUI:

  1. Launch revoco
  2. Press s to open Settings
  3. Select your preferred channel
  4. Press Enter to save
  5. Restart revoco for changes to take effect

Uninstallation

Quick Uninstall (Interactive)
curl -fsSL https://raw.githubusercontent.com/fulgidus/revoco/main/uninstall.sh | bash
Non-interactive Full Removal
curl -fsSL https://raw.githubusercontent.com/fulgidus/revoco/main/uninstall.sh | bash -s -- --yes

The uninstaller will prompt to remove:

  • Binary — The revoco executable
  • Config~/.config/revoco/ (settings and plugin config)
  • Plugins~/.config/revoco/plugins/ (installed plugins)
  • Sessions~/.revoco/sessions/ (your work data — use caution)
  • Cache~/.cache/revoco/ (cached tools like exiftool)

License

GPL-3.0

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package cmd implements the revoco CLI using cobra.
Package cmd implements the revoco CLI using cobra.
Package config provides global configuration for revoco.
Package config provides global configuration for revoco.
Package core defines the interfaces for revoco's modular connector architecture.
Package core defines the interfaces for revoco's modular connector architecture.
googledrive
Package googledrive provides a connector for Google Drive with OAuth2 authentication.
Package googledrive provides a connector for Google Drive with OAuth2 authentication.
local
Package local provides connectors for local filesystem sources.
Package local provides connectors for local filesystem sources.
Package cookies provides Chrome cookie decryption and Netscape jar I/O.
Package cookies provides Chrome cookie decryption and Netscape jar I/O.
Package credentials provides storage and management for connector authentication.
Package credentials provides storage and management for connector authentication.
Package engine contains the core processing logic for revoco.
Package engine contains the core processing logic for revoco.
Package filedate extracts dates from filenames using patterns common to Google Photos exports (Pixel, Samsung, WhatsApp, Telegram, Facebook, etc.).
Package filedate extracts dates from filenames using patterns common to Google Photos exports (Pixel, Samsung, WhatsApp, Telegram, Facebook, etc.).
internal
bundled
Package bundled exposes the embedded binary blobs for exiftool and ffmpeg.
Package bundled exposes the embedded binary blobs for exiftool and ffmpeg.
tools
Package tools provides runtime lookup and extraction of bundled binaries.
Package tools provides runtime lookup and extraction of bundled binaries.
Package metadata defines Go types matching the Google Photos Takeout JSON schema.
Package metadata defines Go types matching the Google Photos Takeout JSON schema.
outputs
common
Package common provides shared output modules that work across services.
Package common provides shared output modules that work across services.
Package plugins provides a dynamic plugin system for revoco.
Package plugins provides a dynamic plugin system for revoco.
external
Package external provides the external plugin runtime for revoco.
Package external provides the external plugin runtime for revoco.
lua
Package lua provides the Lua runtime for revoco plugins.
Package lua provides the Lua runtime for revoco plugins.
pipeline
Package pipeline provides the pipeline engine for revoco.
Package pipeline provides the pipeline engine for revoco.
Package secrets provides password-encrypted storage for sensitive data (e.g.
Package secrets provides password-encrypted storage for sensitive data (e.g.
Package services provides the service registration entry point.
Package services provides the service registration entry point.
calendar
Package calendar implements the Google Calendar Takeout service for revoco.
Package calendar implements the Google Calendar Takeout service for revoco.
calendar/ingesters
Package ingesters provides Calendar Takeout ingestion modules.
Package ingesters provides Calendar Takeout ingestion modules.
calendar/metadata
Package metadata provides ICS (iCalendar) parsing for Google Calendar Takeout.
Package metadata provides ICS (iCalendar) parsing for Google Calendar Takeout.
calendar/outputs
Package outputs provides Calendar export outputs.
Package outputs provides Calendar export outputs.
calendar/processors
Package processors provides data processing for Calendar Takeout.
Package processors provides data processing for Calendar Takeout.
chrome
Package chrome implements the Chrome Takeout service for revoco.
Package chrome implements the Chrome Takeout service for revoco.
chrome/ingesters
Package ingesters provides data ingestion modules for Chrome Takeout.
Package ingesters provides data ingestion modules for Chrome Takeout.
chrome/metadata
Package metadata provides Chrome Takeout parsing for bookmarks and browser history.
Package metadata provides Chrome Takeout parsing for bookmarks and browser history.
chrome/outputs
Package outputs provides output modules for Chrome Takeout data.
Package outputs provides output modules for Chrome Takeout data.
chrome/processors
Package processors provides data processing for Chrome Takeout.
Package processors provides data processing for Chrome Takeout.
contacts
Package contacts implements the Google Contacts Takeout service for revoco.
Package contacts implements the Google Contacts Takeout service for revoco.
contacts/ingesters
Package ingesters provides reusable ingesters for the Contacts service.
Package ingesters provides reusable ingesters for the Contacts service.
contacts/metadata
Package metadata defines types for Google Contacts Takeout data.
Package metadata defines types for Google Contacts Takeout data.
contacts/outputs
Package outputs provides output modules for Google Contacts data.
Package outputs provides output modules for Google Contacts data.
contacts/processors
Package processors provides data processing for Google Contacts Takeout.
Package processors provides data processing for Google Contacts Takeout.
core
Package core defines the interfaces for revoco's modular service architecture.
Package core defines the interfaces for revoco's modular service architecture.
core/ingesters
Package ingesters provides reusable data import modules for Takeout services.
Package ingesters provides reusable data import modules for Takeout services.
fit
Package fit implements the Google Fit service for revoco.
Package fit implements the Google Fit service for revoco.
fit/ingesters
Package ingesters provides data import modules for Google Fit Takeout.
Package ingesters provides data import modules for Google Fit Takeout.
fit/metadata
Package metadata provides Google Fit activity and fitness data parsing.
Package metadata provides Google Fit activity and fitness data parsing.
fit/outputs
Package outputs provides output modules for Fit data.
Package outputs provides output modules for Fit data.
fit/processors
Package processors provides data processing for Google Fit Takeout.
Package processors provides data processing for Google Fit Takeout.
gmail
Package gmail implements the Gmail Takeout service for revoco.
Package gmail implements the Gmail Takeout service for revoco.
gmail/ingesters
Package ingesters provides data ingestion modules for Gmail Takeout.
Package ingesters provides data ingestion modules for Gmail Takeout.
gmail/metadata
Package metadata defines types for Gmail Takeout data.
Package metadata defines types for Gmail Takeout data.
gmail/outputs
Package outputs provides output modules for Gmail data.
Package outputs provides output modules for Gmail data.
gmail/processors
Package processors provides data processing for Gmail Takeout.
Package processors provides data processing for Gmail Takeout.
googlephotos
Package googlephotos implements the Google Photos Takeout service for revoco.
Package googlephotos implements the Google Photos Takeout service for revoco.
googlephotos/ingesters
Package ingesters provides data import modules for Google Photos Takeout.
Package ingesters provides data import modules for Google Photos Takeout.
googlephotos/processors
Package processors provides data processing modules for Google Photos.
Package processors provides data processing modules for Google Photos.
keep
Package keep implements the Google Keep Takeout service for revoco.
Package keep implements the Google Keep Takeout service for revoco.
keep/ingesters
Package ingesters provides Keep-specific data import modules.
Package ingesters provides Keep-specific data import modules.
keep/metadata
Package metadata provides Keep note parsing and structures.
Package metadata provides Keep note parsing and structures.
keep/outputs
Package outputs provides output modules for Keep data.
Package outputs provides output modules for Keep data.
keep/processors
Package processors provides data processing for Google Keep Takeout.
Package processors provides data processing for Google Keep Takeout.
maps
Package maps implements the Google Maps service for revoco.
Package maps implements the Google Maps service for revoco.
maps/ingesters
Package ingesters provides data ingestion modules for Google Maps Takeout.
Package ingesters provides data ingestion modules for Google Maps Takeout.
maps/metadata
Package metadata provides Google Maps location history parsing and structures.
Package metadata provides Google Maps location history parsing and structures.
maps/outputs
Package outputs provides output modules for Maps data.
Package outputs provides output modules for Maps data.
maps/processors
Package processors provides data processing for Google Maps Takeout.
Package processors provides data processing for Google Maps Takeout.
passwords
Package passwords implements the Google Passwords service for revoco.
Package passwords implements the Google Passwords service for revoco.
passwords/ingesters
Package ingesters provides data ingestion modules for Google Passwords.
Package ingesters provides data ingestion modules for Google Passwords.
passwords/metadata
Package metadata provides Google Passwords CSV parsing.
Package metadata provides Google Passwords CSV parsing.
passwords/outputs
Package outputs provides output modules for Passwords Takeout data.
Package outputs provides output modules for Passwords Takeout data.
passwords/processors
Package processors provides data processing for Google Passwords Takeout.
Package processors provides data processing for Google Passwords Takeout.
tasks
Package tasks implements the Google Tasks Takeout service for revoco.
Package tasks implements the Google Tasks Takeout service for revoco.
tasks/ingesters
Package ingesters provides data import modules for Google Tasks.
Package ingesters provides data import modules for Google Tasks.
tasks/metadata
Package metadata provides Tasks list parsing and structures.
Package metadata provides Tasks list parsing and structures.
tasks/outputs
Package outputs provides output modules for Tasks data.
Package outputs provides output modules for Tasks data.
tasks/processors
Package processors provides data processing for Google Tasks Takeout.
Package processors provides data processing for Google Tasks Takeout.
youtubemusic
Package youtubemusic implements the YouTube Music Takeout service for revoco.
Package youtubemusic implements the YouTube Music Takeout service for revoco.
youtubemusic/ingesters
Package ingesters provides data import modules for YouTube Music Takeout.
Package ingesters provides data import modules for YouTube Music Takeout.
youtubemusic/metadata
Package metadata defines types for YouTube Music Takeout data.
Package metadata defines types for YouTube Music Takeout data.
youtubemusic/outputs
Package outputs provides output modules specific to YouTube Music.
Package outputs provides output modules specific to YouTube Music.
youtubemusic/processors
Package processors provides data processing modules for YouTube Music.
Package processors provides data processing modules for YouTube Music.
Package session manages revoco work sessions.
Package session manages revoco work sessions.
schema
Package schema defines session configuration schemas and migration functions.
Package schema defines session configuration schemas and migration functions.
tui
Package tui provides a Bubble Tea TUI for revoco.
Package tui provides a Bubble Tea TUI for revoco.
components
Package components provides reusable TUI widgets for revoco.
Package components provides reusable TUI widgets for revoco.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL