CLI Reference

Complete documentation for all termiflow commands, flags, and usage patterns. All commands support --help for detailed usage information.

Command Overview

$ termiflow --help
COMMAND DESCRIPTION
ask Ask a question and get an AI-powered answer with sources
subscribe Subscribe to a topic for curated updates
unsubscribe Remove a topic subscription
feed Display curated feed items from subscriptions
topics List available predefined topics and current subscriptions
config View and modify configuration
status Show current configuration and system health
upgrade Check for newer versions and show upgrade instructions
changelog Show release notes from recent versions
version Show version and build information

Global Flags

These flags are available on all commands.

FLAG TYPE DESCRIPTION
--config string Specify custom config file path
--provider string Override LLM provider (openai, anthropic, local)
--quiet, -q bool Suppress non-essential output
--debug bool Enable debug logging
--no-color bool Disable colored output
--json bool Output as structured JSON

ask

Core

Ask a question and get an AI-powered answer synthesized from multiple sources. Results are streamed to your terminal in real-time with source attribution.

usage
$ termiflow ask <question> [flags]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--sources int Number of sources to retrieve and synthesize 5
--no-search bool Use LLM knowledge only, skip web search false
--save bool Save query and response to history false
--provider string LLM provider: openai, anthropic, or local config

Examples

termiflow — ask
# Basic question
$ termiflow ask "latest advancements in 3nm chip fabrication"
# Use more sources for comprehensive research
$ termiflow ask "compare TSMC N3 vs Intel 4" --sources 10
# Quick answer from LLM knowledge only
$ termiflow ask "explain rust's borrow checker" --no-search
# Use a specific provider
$ termiflow ask "EUV lithography challenges" --provider local

subscribe

Core

Subscribe to a topic for curated updates. You can subscribe to predefined categories or create custom free-form topics. Updates are fetched and curated by AI based on your chosen frequency.

usage
$ termiflow subscribe <topic> [flags]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--hourly bool Get updates every hour false
--daily bool Get updates once per day true
--weekly bool Get updates once per week false
--sources string Comma-separated source types: tavily, rss, scrape all

Examples

termiflow — subscribe
# Subscribe to a predefined category
$ termiflow subscribe "silicon-chips"
# Custom topic with weekly updates
$ termiflow subscribe "RISC-V adoption in automotive" --weekly
# High-frequency updates for fast-moving topics
$ termiflow subscribe "rust async ecosystem" --hourly
# Only use RSS feeds as source
$ termiflow subscribe "kubernetes" --sources rss

unsubscribe

Remove a topic subscription. Your existing feed items for that topic are preserved unless you run a cleanup.

usage
$ termiflow unsubscribe <topic> [flags]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--all bool Unsubscribe from all topics (requires confirmation) false
--force bool Skip confirmation prompt false

Examples

termiflow — unsubscribe
# Unsubscribe from a specific topic
$ termiflow unsubscribe "silicon-chips"
# Unsubscribe from everything
$ termiflow unsubscribe --all
# Force unsubscribe without confirmation (useful in scripts)
$ termiflow unsubscribe "old-topic" --force

feed

Core

Display curated feed items from your subscriptions. Items are sorted by relevance and recency, with AI-generated summaries and tags.

usage
$ termiflow feed [flags]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--topic string Filter feed by subscription topic all
--today bool Show only today's items false
--week bool Show items from the past week false
--limit int Maximum number of items to display 20
--refresh bool Fetch new items before displaying false
--all bool Include already-read items false

Examples

termiflow — feed
# Show all unread items
$ termiflow feed
# Refresh and show today's updates
$ termiflow feed --refresh --today
# Filter by specific topic
$ termiflow feed --topic "silicon-chips"
# Get a quick summary (limit to 5 items)
$ termiflow feed --limit 5
# Review everything from the past week
$ termiflow feed --week --all

topics

List available predefined topics and your current subscriptions. Predefined topics come with curated sources and optimized search keywords.

usage
$ termiflow topics [flags]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--available bool Show only predefined categories false
--subscribed bool Show only your active subscriptions false

Examples

termiflow — topics
# Show everything (subscriptions + available)
$ termiflow topics
# Browse available predefined categories
$ termiflow topics --available
# Check your current subscriptions
$ termiflow topics --subscribed

config

View and modify termiflow configuration. Configuration is stored in ~/.config/termiflow/config.toml. API keys can also be set via environment variables.

usage
$ termiflow config [command]

Subcommands

COMMAND ARGUMENTS DESCRIPTION
init Interactive first-time setup wizard
get <key> Get a configuration value
set <key> <value> Set a configuration value
--edit Open config file in $EDITOR
path Print config file location

Examples

termiflow — config
# First-time interactive setup
$ termiflow config init
# View current configuration
$ termiflow config
# Set OpenAI API key
$ termiflow config set providers.openai.api_key "sk-..."
# Get current default provider
$ termiflow config get general.default_provider
# Open config in your editor
$ termiflow config --edit

status

System

Show current configuration summary, provider info, API health, active subscriptions with item counts, and database stats.

usage
$ termiflow status [--json]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--json bool Output as structured JSON false

Output Includes

  • + Current mode (Managed or Self-hosted)
  • + LLM provider and model info
  • + API health check (managed mode)
  • + Active subscriptions with last fetch timestamps
  • + Per-subscription item counts (total and unread)
  • + Database size and config file path

upgrade

System

Check for newer versions of termiflow on GitHub. Shows semantic version comparison and upgrade instructions. Uses ETag-based caching for offline fallback.

usage
$ termiflow upgrade
# Example output when an update is available:
Current: v0.3.5.0
Latest: v—
Run: go install github.com/oluoyefeso/termiflow/cmd/termiflow@latest

changelog

System

Show release notes from recent versions, fetched from GitHub. Marks your current version and color-codes changelog tags (New, Fix, Breaking, Changed, Removed). Uses ETag caching for offline access.

usage
$ termiflow changelog [flags]

Flags

FLAG TYPE DESCRIPTION DEFAULT
--all bool Show all releases (up to 30) instead of latest 3 false

version

Display version information including build date, git commit, Go version, and platform.

usage
$ termiflow version
# or
$ termiflow --version

Example Output

termiflow — version
$ termiflow version
termiflow v—
Build: 2026-03-28
Commit: a1b2c3d
Go: go1.24.2
Platform: darwin/arm64