az-funcy 1.0.5

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet tool install --global az-funcy --version 1.0.5
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local az-funcy --version 1.0.5
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=az-funcy&version=1.0.5
                    
nuke :add-package az-funcy --version 1.0.5
                    

Funcy

Funcy is a terminal-based (TUI) tool for monitoring and administering Azure Function Apps across Azure subscriptions.

It is built with Spectre.Console and inspired by tools like btop and k9s, focusing on fast feedback, keyboard-driven workflows, and minimal friction.


Features

  • List Azure Function Apps in the active subscription
  • Fast startup using a local cache, followed by background refresh from Azure
  • Start and stop Function Apps
  • Swap deployment slots to production
  • Switch Azure subscriptions at runtime
  • Filter and sort large lists efficiently
  • Fully keyboard-driven UI

Requirements

Runtime

  • .NET 9
  • Azure CLI (az)

Azure CLI extensions

Funcy depends on Azure Resource Graph, which is not installed by default.

Install it explicitly:

az extension add --name resource-graph

Verify installation:

az extension list

Azure authentication

Funcy uses DefaultAzureCredential.

You must be logged in via Azure CLI:

az login

Required permissions:

  • Read access to list Function Apps (Resource Graph)
  • Contributor (or equivalent) to start/stop apps or swap slots

Getting started

  1. Log in to Azure:

    az login
    
  2. (Optional) Set a default subscription:

    az account set --subscription "<subscription name or id>"
    
  3. Build and run:

    dotnet run --project src/Funcy.Console
    

On startup, Funcy:

  1. Loads Function Apps from a local database cache (fast)
  2. Refreshes data from Azure in the background

Configuration

On first run, Funcy creates a settings.json file in the data directory:

Platform Path
Windows %LOCALAPPDATA%\Funcy\settings.json
macOS ~/Library/Application Support/Funcy/settings.json
Linux ~/.local/share/funcy/settings.json

Edit it to customize Funcy's behavior:

{
  "Funcy": {
    "TagColumns": [ "System", "Team" ]
  }
}

TagColumns – which Azure resource tags to display as columns in the Function App list.


Subscription switching

Funcy supports switching Azure subscriptions at runtime.

  • The currently active subscription is shown in the top panel
  • Use the subscription shortcut to open the Switch Subscription view
  • Selecting a new subscription:
    • Updates the global application context
    • Clears cached Function Apps
    • Reloads data for the new subscription (cache → Azure)

After switching, you always return to the Function Apps view.


Keyboard shortcuts

Global

  • F – Filter
  • R – Refresh
  • S – Start Function App
  • T – Stop Function App
  • W – Swap slot to production
  • Enter – Navigate into selection
  • Esc / Space – Go back
  • Delete – Clear filter
  • ↑ / ↓ / PgUp / PgDn – Scroll
  • 1..n – Sort by column
  • U – Open subscription switcher

Notes & limitations

  • Azure Resource Graph must be installed, or no Function Apps will be listed
  • Visible subscriptions depend on the active Azure CLI account and tenant

Roadmap (informal)

  • Settings view
  • Favorites / pinned Function Apps
  • Hide functionality for subscriptions
  • Improved error surfacing in UI
  • Throttle refresh on subscription change (max once every 5 minutes)
  • View Service Bus message count
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.1.0-preview.1 55 6/8/2026
1.0.5 150 3/8/2026