revoco

command module
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 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.


Installation

Quick Install (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/fulgidus/revoco/main/install.sh | bash
From GitHub Releases

Download the latest release for your platform from GitHub Releases.

Build from Source
# 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

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

MIT

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.
core
Package core defines the interfaces for revoco's modular service architecture.
Package core defines the interfaces for revoco's modular service architecture.
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.
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