A fast, cross-platform CLI tool for converting between raster images and their numerical vector representations (flat lists of RGB pixel values).
- Image to vector — convert any image to a numerical vector (txt, json, csv, bin)
- Vector to image — reconstruct images from vectors (with or without manual dimensions)
- Metadata headers — vector files embed width/height for automatic reconstruction
- Batch processing — glob patterns and recursive directory scanning
- Grayscale & channel selection — extract specific color channels
- JPEG quality control — set output quality for JPEG reconstruction
- Dimension analysis — inspect images and find possible dimensions
- Self-update — update to the latest version with
neovector self-update - Self-uninstall — fully remove neovector with
neovector self-uninstall - 13 Color Themes — switch themes with
neovector config theme <name> - Cross-platform — Windows, Linux, macOS binaries
- Portable — single static binary, no runtime dependencies
- Configurable — config.toml at
~/.config/neostore/neovector/ - Operation log — every conversion logged with timestamp
git clone https://github.com/rkriad585/neovector.git
cd neovector
go build -o neovector .Windows (PowerShell):
irm https://raw.githubusercontent.com/rkriad585/neovector/main/installer.ps1 | iexLinux/macOS:
curl -fsSL https://raw.githubusercontent.com/rkriad585/neovector/main/installer.sh | shgo install github.com/rkriad585/neovector@latestdocker build -t rkriad585/neovector .
docker run --rm rkriad585/neovector --help# TXT format (with metadata header)
neovector convert to-vector image.png vector.txt
# JSON, CSV, or Binary
neovector convert to-vector image.jpg vector.json
neovector convert to-vector image.png vector.csv
neovector convert to-vector image.png vector.bin# With header (dimensions auto-detected)
neovector convert to-image vector.txt restored.png
# Without header (manual dimensions)
neovector convert to-image vector.txt restored.png 1920 1080
# JPEG with quality control
neovector convert to-image vector.json photo.jpg 1920 1080 --quality 85# Convert all PNGs in batch
neovector convert to-vector "images/*.png" ./vectors --recursive
# Reconstruct all vectors with headers
neovector convert to-image "vectors/*.txt" ./images --recursive# Single-channel grayscale
neovector convert to-vector photo.jpg gray.txt --grayscale
# Extract red channel only
neovector convert to-vector photo.jpg red.txt --channels r
# Extract red+green channels
neovector convert to-vector photo.jpg rg.txt --channels rgneovector check --image image.png
neovector check --vector vector.txt
neovector check --image image.png --vector vector.txt# Persistent flags available on all commands
neovector --output-dir "~/myoutput" convert to-vector image.png vector.txt
neovector --format csv convert to-vector image.png vector.csvneovector self-update
neovector self-update --proxy http://proxy:8080# View current config
neovector config
# Set values directly
neovector config --format csv
neovector config --output-dir "~/projects/vectors"
neovector config --proxy http://proxy:8080
# Interactive TUI editor
neovector config --edit
# Theme management
neovector config theme # Show current theme + all themes
neovector config theme <name> # Switch theme directly
neovector config theme --edit # Interactive theme pickerneovector self-uninstallneovector version
neovector --versionConfig file: ~/.config/neostore/neovector/config.toml
[general]
default_format = "txt"
output_dir = ""
[network]
proxy = ""
[theme]
name = "sunny_beach_day"
mode = "dark"History log: ~/.config/neostore/neovector/history.log
Output files default to: ~/Downloads/neostore/neovector/
(override with output_dir in config or --output-dir flag)
# Build for current platform
make build
# Cross-compile all platforms
make release
# Build with Docker
make docker-build
# Run tests
make test
# Run linter
make lintgo build -trimpath -ldflags "-s -w" -o neovector .neovector/
├── main.go # Entry point, ldflags injection
├── .version # Current version
├── cmd/
│ ├── root.go # Root cobra command, banner, config init
│ ├── convert.go # to-vector, to-image subcommands
│ ├── check.go # dimension analysis
│ ├── config.go # config + config theme subcommand
│ ├── completion.go # Shell completion generation
│ ├── selfupdate.go # self-update command
│ └── selfuninstall.go # self-uninstall subcommand
├── internal/
│ ├── banner/ # Startup banner
│ ├── config/ # Config dir, config.toml, output dir
│ ├── log/ # history.log writer
│ ├── theme/ # Color theme system (13 themes)
│ ├── uninstall/ # Self-uninstall logic
│ └── version/ # Build metadata vars
├── build.ps1 # Windows cross-compile script
├── build.sh # Linux/macOS cross-compile script
├── installer.ps1 # Windows installer
├── installer.sh # Linux/macOS installer
├── Dockerfile # Multi-stage Docker build
├── docker-compose.yml # Docker Compose
├── Makefile # Build automation
└── CMakeLists.txt # CMake build
MIT License. See LICENSE.