Skip to content

CLI Commands Reference

Complete command reference for FinFocus.

Terminal window
finfocus # Auto-detects Pulumi project; opens overview if found, otherwise shows help
finfocus overview # Unified cost dashboard (alias: ov)
finfocus cost # Cost commands
finfocus cost projected # Estimate costs from plan
finfocus cost actual # Get actual historical costs
finfocus cost estimate # What-if cost analysis
finfocus cost recommendations # Get cost optimization recommendations
finfocus cost recommendations dismiss # Dismiss a recommendation
finfocus cost recommendations snooze # Snooze a recommendation
finfocus cost recommendations undismiss # Re-enable a dismissed recommendation
finfocus cost recommendations history # View recommendation lifecycle history
finfocus config # Configuration commands
finfocus config init # Initialize configuration file with defaults
finfocus config set # Set a configuration value
finfocus config get # Get a configuration value
finfocus config list # List all configuration values
finfocus config validate # Validate routing configuration
finfocus config routes # Routing inspection commands
finfocus config routes list # Show effective routing rules
finfocus config routes test # Simulate plugin selection for a resource type
finfocus plugin # Plugin commands
finfocus plugin init # Initialize a new plugin
finfocus plugin install # Install a plugin
finfocus plugin update # Update a plugin
finfocus plugin remove # Remove a plugin
finfocus plugin list # List installed plugins
finfocus plugin inspect # Inspect plugin capabilities
finfocus plugin validate # Validate plugin setup
finfocus plugin conformance # Run conformance tests
finfocus plugin certify # Run certification tests
finfocus analyzer # Analyzer commands
finfocus analyzer install # Install the Pulumi analyzer plugin
finfocus analyzer uninstall # Uninstall the Pulumi analyzer plugin
finfocus analyzer serve # Start the analyzer gRPC server

Display a unified cost dashboard combining Pulumi state and plan data with actual costs, projected costs, drift analysis, and recommendations.

When run inside a Pulumi project directory without explicit file flags, finfocus overview auto-detects the project and current stack, then runs pulumi stack export and pulumi preview --json automatically. Running finfocus with no arguments has the same effect when a Pulumi project is detected.

Alias: ov

Terminal window
finfocus overview [options]
finfocus ov [options]
finfocus # same as overview when inside a Pulumi project
FlagDescriptionDefault
--pulumi-statePath to Pulumi state JSON (skips auto-detection)Auto-detected
--pulumi-jsonPath to Pulumi preview JSON (skips auto-detection)Auto-detected
--stackPulumi stack name for auto-detection (ignored with --pulumi-state/--pulumi-json)Current stack
--fromStart date (YYYY-MM-DD or RFC3339)1st of current month
--toEnd date (YYYY-MM-DD or RFC3339)Now
--adapterRestrict to a specific adapter pluginAll plugins
--outputOutput format: table, json, ndjsontable
--filterResource filters, repeatable-
--plainForce non-interactive plain text outputfalse
--yes, -ySkip confirmation promptsfalse
--no-paginationDisable pagination (plain mode only)false
Terminal window
# Auto-detect from current Pulumi project (recommended)
finfocus overview
# Same — bare invocation inside a Pulumi project
finfocus
# Select a non-default stack
finfocus overview --stack production
# Use pre-exported files
finfocus overview --pulumi-state state.json --pulumi-json plan.json
# CI/CD: non-interactive JSON output
finfocus overview --output json --yes
# Filter to a single provider
finfocus overview --filter provider=aws --plain --yes
# Custom date range
finfocus overview --from 2026-01-01 --to 2026-01-31 --plain --yes

Calculate estimated costs from Pulumi plan. When --pulumi-json is omitted, FinFocus auto-detects the Pulumi project and runs pulumi preview --json.

Terminal window
finfocus cost projected [options]
FlagDescriptionDefault
--pulumi-jsonPath to Pulumi preview JSON (optional; auto-detected if omitted)
--stackPulumi stack name for auto-detection (ignored with —pulumi-json)
--filterFilter resources (tag:key=value, type=*)None
--outputOutput format: table, json, ndjsontable
--utilizationAssumed resource utilization (0.0-1.0)1.0
--helpShow help
Terminal window
# Auto-detect from Pulumi project
finfocus cost projected
# Specific stack
finfocus cost projected --stack production
# Explicit file (existing behavior)
finfocus cost projected --pulumi-json plan.json
# JSON output
finfocus cost projected --pulumi-json plan.json --output json
# Filter by type
finfocus cost projected --pulumi-json plan.json --filter "type=aws:ec2*"
# NDJSON for pipelines
finfocus cost projected --pulumi-json plan.json --output ndjson

Display cost optimization recommendations from cloud providers.

Terminal window
finfocus cost recommendations --pulumi-json <file> [options]
FlagDescriptionDefault
--pulumi-jsonPath to Pulumi preview JSONRequired
--filterFilter expression (e.g., action=RIGHTSIZE,TERMINATE)None
--outputOutput format: table, json, ndjsontable
--limitLimit number of recommendations0 (all)
--verboseShow all recommendations with full detailsfalse
--include-dismissedShow dismissed and snoozed recommendations alongside active onesfalse
--sortSort expression (e.g., savings:desc)None
--helpShow help
SubcommandDescription
dismissPermanently dismiss a recommendation
snoozeSnooze a recommendation until a date
undismissRe-enable a dismissed recommendation
historyView lifecycle history for a recommendation
Terminal window
# Interactive mode (default)
finfocus cost recommendations --pulumi-json plan.json
# Filter by action type
finfocus cost recommendations --pulumi-json plan.json --filter "action=RIGHTSIZE,TERMINATE"
# JSON output
finfocus cost recommendations --pulumi-json plan.json --output json
# Include dismissed and snoozed recommendations
finfocus cost recommendations --pulumi-json plan.json --include-dismissed

Permanently dismiss a recommendation with a reason.

Terminal window
finfocus cost recommendations dismiss <recommendation-id> [options]
FlagDescriptionDefault
-r, --reasonDismissal reason (required)Required
-n, --noteFree-text explanation (required for other reason)None
-f, --forceSkip confirmation promptfalse
--pulumi-jsonPath to Pulumi preview JSON (for plugin communication)None
--adapterUse specific adapter pluginNone
ReasonDescription
not-applicableRecommendation doesn’t apply
already-implementedAlready acted on this recommendation
business-constraintBusiness requirements prevent action
technical-constraintTechnical limitations prevent action
deferredWill address later
inaccurateRecommendation data is wrong
otherCustom reason (requires --note)
Terminal window
# Dismiss with a reason
finfocus cost recommendations dismiss rec-123abc \
--reason business-constraint --pulumi-json plan.json
# Dismiss with a custom note
finfocus cost recommendations dismiss rec-123abc \
--reason other --note "Intentional oversizing" --pulumi-json plan.json
# Skip confirmation prompt
finfocus cost recommendations dismiss rec-123abc \
--reason not-applicable --force --pulumi-json plan.json

Temporarily dismiss a recommendation until a future date.

Terminal window
finfocus cost recommendations snooze <recommendation-id> [options]
FlagDescriptionDefault
--untilSnooze until date (required, YYYY-MM-DD or RFC3339; must be in the future)Required
-r, --reasonDismissal reasondeferred
-n, --noteFree-text explanationNone
-f, --forceSkip confirmation promptfalse
--pulumi-jsonPath to Pulumi preview JSON (for plugin communication)None
--adapterUse specific adapter pluginNone
Terminal window
# Snooze until a specific date (replace with a future date)
finfocus cost recommendations snooze rec-456def \
--until YYYY-MM-DD --pulumi-json plan.json
# Snooze with reason and note (replace with a future date)
finfocus cost recommendations snooze rec-456def \
--until YYYY-MM-DD --reason deferred \
--note "Scheduled for Q2 review" --pulumi-json plan.json

Re-enable a previously dismissed or snoozed recommendation.

Terminal window
finfocus cost recommendations undismiss <recommendation-id> [options]
FlagDescriptionDefault
-f, --forceSkip confirmation promptfalse
Terminal window
# Re-enable a dismissed recommendation
finfocus cost recommendations undismiss rec-123abc

View the lifecycle history of a specific recommendation.

Terminal window
finfocus cost recommendations history <recommendation-id> [options]
FlagDescriptionDefault
--outputOutput format: table, json, ndjsontable
Terminal window
# View history in table format
finfocus cost recommendations history rec-123abc
# View history as JSON
finfocus cost recommendations history rec-123abc --output json
# View history as NDJSON (one JSON object per line)
finfocus cost recommendations history rec-123abc --output ndjson

Get actual historical costs from plugins. When --pulumi-json and --pulumi-state are both omitted, FinFocus auto-detects the Pulumi project and runs pulumi stack export.

Terminal window
finfocus cost actual [options]
FlagDescriptionDefault
--pulumi-jsonPath to Pulumi preview JSON (mutually exclusive with —pulumi-state)
--pulumi-statePath to Pulumi state JSON from pulumi stack export
--stackPulumi stack name for auto-detection (ignored with —pulumi-json/—pulumi-state)
--fromStart date (YYYY-MM-DD or RFC3339; auto-detected from state if omitted)
--toEnd date (YYYY-MM-DD or RFC3339)Now
--filterFilter resources (tag:key=value, type=*)None
--group-byGroup results (resource, type, provider, daily, monthly)
--outputOutput format: table, json, ndjsontable
--estimate-confidenceShow confidence level for cost estimatesfalse
--helpShow help

When --estimate-confidence is enabled, a Confidence column appears showing data reliability:

LevelDescription
HIGHReal billing data from plugin (AWS Cost Explorer, Kubecost)
MEDIUMRuntime estimate for Pulumi-created resources
LOWRuntime estimate for imported resources (creation time unknown)
Terminal window
# Auto-detect from Pulumi project (dates auto-detected from state)
finfocus cost actual
# Auto-detect with specific stack
finfocus cost actual --stack production
# Estimate costs from Pulumi state (--from auto-detected from timestamps)
finfocus cost actual --pulumi-state state.json
# Estimate costs from state with explicit date range
finfocus cost actual --pulumi-state state.json --from 2025-01-01 --to 2025-01-31
# Get costs from Pulumi plan
finfocus cost actual --pulumi-json plan.json --from 2025-01-01
# Group by day
finfocus cost actual --pulumi-json plan.json --group-by daily --from 2025-01-01 --to 2025-01-31
# Group by provider
finfocus cost actual --pulumi-json plan.json --from 2025-01-01 --group-by provider
# Filter by tag
finfocus cost actual --pulumi-json plan.json --from 2025-01-01 --filter "tag:env=prod"
# JSON output
finfocus cost actual --pulumi-json plan.json --from 2025-01-01 --output json
# Show estimate confidence levels (useful for imported resources)
finfocus cost actual --pulumi-state state.json --estimate-confidence

Perform what-if cost analysis on resources without modifying Pulumi code.

Terminal window
finfocus cost estimate [options]

The command supports two mutually exclusive modes:

Single-Resource Mode:

  • Specify --provider and --resource-type to estimate cost for a single resource
  • Use --property to specify property overrides (repeatable)

Plan-Based Mode:

  • Specify --pulumi-json to load resources from a Pulumi plan
  • Use --modify to apply modifications to specific resources
FlagDescriptionDefault
--providerCloud provider (aws, gcp, azure)
--resource-typeResource type (e.g., ec2:Instance)
--propertyProperty override key=value (repeatable)
--pulumi-jsonPath to Pulumi preview JSON
--modifyResource modification resource:key=value
--regionRegion for cost calculation
--interactiveLaunch interactive TUI modefalse
--outputOutput format: table, json, ndjsontable
--adapterSpecific plugin adapter to use
--helpShow help
Terminal window
# Single resource estimation - estimate cost of changing instance type
finfocus cost estimate --provider aws --resource-type ec2:Instance \
--property instanceType=m5.large
# Single resource with region
finfocus cost estimate --provider aws --resource-type ec2:Instance \
--property instanceType=m5.large --region us-west-2
# Plan-based estimation - modify a specific resource in existing plan
finfocus cost estimate --pulumi-json plan.json \
--modify "web-server:instanceType=m5.large"
# Plan-based with multiple modifications
finfocus cost estimate --pulumi-json plan.json \
--modify "web-server:instanceType=m5.large" \
--modify "api-server:instanceType=c5.xlarge"
# Interactive TUI mode
finfocus cost estimate --interactive
# Interactive mode with plan
finfocus cost estimate --pulumi-json plan.json --interactive
# JSON output for scripting
finfocus cost estimate --provider aws --resource-type ec2:Instance \
--property instanceType=m5.large --output json
What-If Cost Analysis
=====================
Resource: ec2:Instance (aws)
ID: estimate-resource
Baseline: $8.32/mo (USD)
Modified: $83.22/mo (USD)
Change: +$74.90/mo
Property Changes:
-----------------
instanceType: t3.micro -> m5.large (+$74.90/mo)

The interactive TUI mode allows you to:

  • Navigate through resource properties with arrow keys
  • Edit property values inline (press Enter to edit)
  • See live cost updates as you modify properties
  • Press ‘q’ or Ctrl+C to exit

Initialize a configuration file with default values. When run inside a Pulumi project, creates project-local configuration at $PROJECT/.finfocus/config.yaml along with a .gitignore to protect user-specific data. Use --global to force global initialization even inside a project.

Terminal window
finfocus config init [options]
FlagDescriptionDefault
--globalForce global config init even inside a Pulumi projectfalse
--forceOverwrite existing configuration filefalse
Terminal window
# Create project-local config (inside a Pulumi project)
finfocus config init
# Create global config
finfocus config init --global
# Overwrite existing config
finfocus config init --force

Set a configuration value using dot notation. Writes to ~/.finfocus/config.yaml (or the project-local config when inside a Pulumi project).

For sensitive values such as API keys, use environment variables instead of storing them in config files.

Terminal window
finfocus config set <key> <value>
Terminal window
# Set output format
finfocus config set output.default_format json
# Set plugin configuration
finfocus config set plugins.aws.region us-west-2
# Set logging level
finfocus config set logging.level debug
# For sensitive values, prefer environment variables
export FINFOCUS_PLUGIN_AWS_SECRET_KEY="mysecret"

Get a configuration value using dot notation from ~/.finfocus/config.yaml.

Terminal window
finfocus config get <key>
Terminal window
# Get output format
finfocus config get output.default_format
# Get a plugin section
finfocus config get plugins.aws
# Get all plugins
finfocus config get plugins
# Get logging level
finfocus config get logging.level

List all configuration values from ~/.finfocus/config.yaml.

Terminal window
finfocus config list [options]
FlagDescriptionDefault
--formatOutput format: yaml or jsonyaml
Terminal window
# List all configuration in YAML format (default)
finfocus config list
# List all configuration in JSON format
finfocus config list --format json

Validate routing configuration for errors and warnings.

Terminal window
finfocus config validate [options]
FlagDescription
--helpShow help
Terminal window
# Validate routing configuration
finfocus config validate
# Success output:
# ✓ Configuration valid
#
# Discovered plugins:
# aws-ce: Recommendations, ActualCosts (priority: 20)
# aws-public: ProjectedCosts, ActualCosts (priority: 10)
#
# Routing rules:
# aws:eks:* → eks-costs (pattern, priority: 30)
# aws:* → aws-public (provider, priority: 10)
# Error output:
# ✗ Configuration invalid
#
# Errors:
# - aws-ce: plugin not found
# - patterns[0].pattern: invalid regex: missing closing bracket
#
# Warnings:
# - aws-public: feature 'Carbon' not supported by plugin
# - eks-costs: duplicate plugin configuration found

Display effective plugin routing rules.

Terminal window
finfocus config routes list [--output table|json]
FlagDescriptionDefault
--outputOutput format: table or jsontable
Terminal window
# Show routing as a table
finfocus config routes list
# Show routing in JSON
finfocus config routes list --output json

Simulate plugin selection for a resource type and view match reasons.

Terminal window
finfocus config routes test <resource-type> [region] [--output table|json]
ArgumentRequiredDescription
resource-typeYesPulumi type token (for example aws:ec2:Instance)
regionNoRegion hint (for example us-east-1)
FlagDescriptionDefault
--outputOutput format: table or jsontable
Terminal window
# Test routing for a type
finfocus config routes test aws:ec2:Instance
# Include region in match context
finfocus config routes test aws:ec2:Instance us-east-1
# JSON output for scripts
finfocus config routes test aws:ec2:Instance --output json

Initialize a new FinFocus plugin project.

Terminal window
finfocus plugin init <plugin-name> --author <name> --providers <list> [options]
FlagDescriptionDefault
--authorAuthor name for the plugin(required)
--providersComma-separated list of cloud providers(required)
--helpShow help
Terminal window
# Initialize a new AWS plugin
finfocus plugin init my-aws-plugin --author "Your Name" --providers aws

Install a FinFocus plugin from a registry or URL.

Terminal window
finfocus plugin install <plugin-name> [--version <version>] [--url <url>] [options]
FlagDescriptionDefault
--versionSpecify plugin version to installlatest
--urlURL to plugin binary (for custom installs)(registry lookup)
--forceForce overwrite existing plugin installationfalse
--cleanRemove all other versions after successful installfalse
--metadataKey=value metadata pairs (e.g., region=us-west-2)(none)
--no-saveDon’t add plugin to config filefalse
--helpShow help
Terminal window
# Install the latest Vantage plugin
finfocus plugin install vantage
# Install a specific version of a plugin
finfocus plugin install kubecost --version 0.2.0
# Install and remove all other versions (cleanup disk space)
finfocus plugin install kubecost --clean
# Install from a custom URL
finfocus plugin install my-plugin --url https://example.com/my-plugin-0.1.0.tar.gz
# Install with region metadata (selects region-specific binary)
finfocus plugin install aws-public --metadata="region=us-west-2"

Update an installed FinFocus plugin.

Terminal window
finfocus plugin update <plugin-name> [options]
FlagDescriptionDefault
--versionSpecify target version (defaults to latest)latest
--allUpdate all installed pluginsfalse
--helpShow help
Terminal window
# Update the Vantage plugin to the latest version
finfocus plugin update vantage
# Update all installed plugins
finfocus plugin update --all

Remove an installed FinFocus plugin.

Terminal window
finfocus plugin remove <plugin-name> [options]
FlagDescriptionDefault
--allRemove all installed pluginsfalse
--helpShow help
Terminal window
# Remove the Vantage plugin
finfocus plugin remove vantage
# Remove all installed plugins
finfocus plugin remove --all

List installed plugins with optional capability details.

Terminal window
finfocus plugin list [options]
FlagDescriptionDefault
--verboseShow detailed plugin capabilities and providersfalse
--helpShow help
Terminal window
# List all plugins
finfocus plugin list
# Output:
# NAME VERSION SPEC PATH
# vantage 0.1.0 0.4.14 /Users/me/.finfocus/plugins/vantage/v0.1.0/finfocus-plugin-vantage
# kubecost 0.2.0 0.4.14 /Users/me/.finfocus/plugins/kubecost/v0.2.0/finfocus-plugin-kubecost
# List with detailed capabilities (routing-aware)
finfocus plugin list --verbose
# Output:
# NAME VERSION PROVIDERS CAPABILITIES SPEC PATH
# aws-public 1.0.0 [aws] ProjectedCosts, ActualCosts 0.4.14 /Users/me/.finfocus/plugins/aws-public/v1.0.0/finfocus-plugin-aws-public
# aws-ce 1.0.0 [aws] Recommendations, ActualCosts 0.4.14 /Users/me/.finfocus/plugins/aws-ce/v1.0.0/finfocus-plugin-aws-ce
# gcp-public 1.0.0 [gcp] ProjectedCosts, ActualCosts 0.4.14 /Users/me/.finfocus/plugins/gcp-public/v1.0.0/finfocus-plugin-gcp-public
# eks-costs 0.5.0 [aws] ProjectedCosts 0.4.14 /Users/me/.finfocus/plugins/eks-costs/v0.5.0/finfocus-plugin-eks-costs

Inspect a plugin’s capabilities and field mappings.

Terminal window
finfocus plugin inspect <plugin-name> <resource-type> [options]
FlagDescriptionDefault
--versionSpecify plugin version to inspectlatest
--jsonOutput in JSON formatfalse
--helpShow help
Terminal window
# Inspect field mappings for AWS EC2 Instance
finfocus plugin inspect aws-public aws:ec2/instance:Instance
# Output:
# Field Mappings:
# FIELD STATUS CONDITION
# -------------------- ---------- ------------------------------
# instanceType MAPPED
# region MAPPED
# tags IGNORED Not used for pricing
# Inspect specific version
finfocus plugin inspect aws-public aws:ec2/instance:Instance --version v0.1.0
# Output as JSON
finfocus plugin inspect aws-public aws:ec2/instance:Instance --json

Validate plugin installations.

Terminal window
finfocus plugin validate [options]
FlagDescription
--helpShow help
Terminal window
# Validate all plugins
finfocus plugin validate
# Output:
# vantage (0.1.0): OK
# kubecost (0.2.0): OK

Run conformance tests against a plugin binary to verify protocol compliance.

Terminal window
finfocus plugin conformance <plugin-path> [options]
FlagDescriptionDefault
--modeCommunication mode: tcp, stdiotcp
--verbosityOutput detail: quiet, normal, verbose, debugnormal
--outputOutput format: table, json, junittable
--output-fileWrite output to filestdout
--timeoutGlobal suite timeout5m
--categoryFilter by category (repeatable): protocol, error, performance, contextall
--filterRegex filter for test names
--helpShow help
Terminal window
# Basic conformance check
finfocus plugin conformance ./plugins/aws-cost
# Verbose output with JSON
finfocus plugin conformance --verbosity verbose --output json ./plugins/aws-cost
# Filter to protocol tests only
finfocus plugin conformance --category protocol ./plugins/aws-cost
# JUnit XML for CI
finfocus plugin conformance --output junit --output-file report.xml ./plugins/aws-cost
# Use stdio mode
finfocus plugin conformance --mode stdio ./plugins/aws-cost

Run full certification tests and generate a certification report.

Terminal window
finfocus plugin certify <plugin-path> [options]
FlagDescriptionDefault
-o, --outputOutput file for certification reportstdout
--modeCommunication mode: tcp, stdiotcp
--timeoutGlobal certification timeout10m
--helpShow help

A plugin is certified if all conformance tests pass:

  • All protocol tests (Name, GetProjectedCost, GetActualCost)
  • All error handling tests
  • All context/timeout tests
  • All performance tests
Terminal window
# Basic certification
finfocus plugin certify ./plugins/aws-cost
# Save report to file
finfocus plugin certify --output certification.md ./plugins/aws-cost
# Use stdio mode
finfocus plugin certify --mode stdio ./plugins/aws-cost
# Output:
# 🔍 Certifying plugin at ./plugins/aws-cost...
# Running conformance tests...
# ✅ CERTIFIED - Plugin passed all conformance tests

The command generates a markdown report containing:

  • Plugin name and version
  • Certification status (CERTIFIED or FAILED)
  • Test summary (total, passed, failed, skipped)
  • List of issues (if any failed)

Starts the FinFocus analyzer gRPC server. This command is intended to be run by the Pulumi CLI as part of the pulumi preview workflow, typically configured in Pulumi.yaml.

Terminal window
finfocus analyzer serve [options]
FlagDescriptionDefault
--logtostderrLog messages to stderr rather than log filesfalse
--vLog level for V-logging (verbose logging)0
--pulumilogfilePulumi log file name (internal use)(generated)
--helpShow help
Terminal window
# This command is typically not run directly by users.
# It's configured in Pulumi.yaml for zero-click cost estimation:
#
# plugins:
# - path: finfocus
# args: ["analyzer", "serve"]

Install the finfocus binary as a Pulumi Analyzer plugin. This replaces the manual process of creating the plugin directory, copying the binary, and setting permissions.

After installation, the binary on PATH is required for Pulumi to find it:

Terminal window
export PATH="${HOME}/.pulumi/plugins/analyzer-finfocus-v<version>:${PATH}"
Terminal window
finfocus analyzer install [options]
FlagDescriptionDefault
--forceOverwrite existing installationfalse
--target-dirOverride Pulumi plugin directory~/.pulumi/plugins/
Terminal window
# Install the analyzer
finfocus analyzer install
# Force reinstall after upgrading finfocus
finfocus analyzer install --force
# Install to a custom directory
finfocus analyzer install --target-dir /opt/pulumi/plugins

Remove all installed versions of the finfocus Pulumi Analyzer plugin. All analyzer-finfocus-v* directories are deleted from the plugin directory.

Terminal window
finfocus analyzer uninstall [options]
FlagDescriptionDefault
--target-dirOverride Pulumi plugin directory~/.pulumi/plugins/
Terminal window
# Uninstall the analyzer
finfocus analyzer uninstall
# Uninstall from a custom directory
finfocus analyzer uninstall --target-dir /opt/pulumi/plugins
Terminal window
finfocus [global options] command [command options]
OptionDescription
--helpShow help
--versionShow version
--debugEnable debug logging
--verboseEnable verbose output
--no-colorDisable colored output
--plainEnable plain text mode (no TUI)
--high-contrastEnable high contrast mode
--skip-version-checkSkip plugin spec version compatibility check
Terminal window
# ISO 8601 (YYYY-MM-DD)
finfocus cost actual --from 2024-01-01
# RFC3339 (full timestamp)
finfocus cost actual --from 2024-01-01T00:00:00Z
# Relative (future)
finfocus cost actual --from "7 days ago"

Human-readable table format:

RESOURCE TYPE MONTHLY CURRENCY
Instance1 ec2 $7.50 USD
Bucket1 s3 $0.50 USD
──────────────────────────────
Total $8.00 USD

Machine-readable JSON format:

{
"summary": { "totalMonthly": 8.0, "currency": "USD" },
"resources": [{ "name": "Instance1", "type": "ec2", "cost": 7.5 }]
}

Newline-delimited JSON (one per line):

{"name":"Instance1","type":"ec2","cost":7.50}
{"name":"Bucket1","type":"s3","cost":0.50}
CodeMeaning
0Success
1General error
2Invalid arguments

See User Guide for workflow examples.