-
Notifications
You must be signed in to change notification settings - Fork 240
Add Start-FinOpsMultitool cmdlet — interactive GUI for tenant-wide FinOps scanning #2155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Changes from all commits
3c89c43
1a63159
8db8eaa
981e4c9
d3d7c1f
a5fd3e3
54129e2
35790a6
9455685
e65b62d
f09870d
c735364
a5e4190
c976654
1fbc9c0
92d17d9
caf4cb2
62e27b8
e730754
74127a7
af92edf
5215c38
a8654bf
0d2c2d5
0be59a2
3febeda
53f9b86
f57b4a9
10fc88b
cb593b3
4f4fee9
26d8c1e
9b4e761
c779195
285239d
4802b27
e8b1f12
9ee96a4
ad4d9b6
94d31ce
a409555
3c8eaa1
7d6b5e3
78c90ac
423735c
d4ee137
83af32c
6263227
b7f7867
151a223
687bfe9
b550f15
44c1118
8290178
3e6df7c
ead35b3
20474c0
e58931b
532b176
1ef543e
3ba8107
ca47281
ae181d7
0540b94
a13b7a0
8c0dab8
d551f10
959ac15
a3ad502
59cf0f1
caf7d5d
19e0d85
39eaf0e
76910ec
5f5deaa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| --- | ||
| title: FinOps multitool overview | ||
| description: FinOps multitool scans an Azure environment for cost optimization, governance, and FinOps insights from a terminal UI, with agent skills so AI assistants can run the same analysis. | ||
| author: z-larsen | ||
| ms.author: zlarsen | ||
| ms.date: 08/19/2026 | ||
| ms.topic: concept-article | ||
| ms.service: finops | ||
| ms.subservice: finops-toolkit | ||
| ms.reviewer: micflan | ||
| #customer intent: As a FinOps practitioner, I need to learn about the FinOps multitool. | ||
| --- | ||
|
|
||
| # FinOps multitool | ||
|
|
||
| FinOps multitool scans an Azure environment for cost optimization, governance, and FinOps insights and grounds its findings in your live resource state. It surfaces cost trends, orphaned resources, idle VMs, tag hygiene, reservation and savings plan utilization, Azure Hybrid Benefit opportunities, budgets, anomaly alerts, and policy compliance—from an interactive terminal or as tools an AI agent can call. | ||
|
|
||
| ## How it works | ||
|
|
||
| FinOps multitool runs 30 scan modules against the subscriptions you select and renders the findings in one place: | ||
|
|
||
| - **Interactive scanning** <br> Choose the subscriptions and scan modules you want, then review results in the terminal. Findings can be exported to CSV, an HTML report, and a text summary. | ||
|
|
||
| - **AI agent support** <br> A companion set of agent skills teaches AI assistants the same investigations, the queries behind them, and how to read the results, so they can answer cost questions grounded in your environment instead of general guidance. | ||
|
|
||
| - **Scales with your data** <br> When a [FinOps hub](../hubs/finops-hubs-overview.md) is available, cost scans query the hub's Azure Data Explorer or Microsoft Fabric database and push aggregation into the engine, returning only summarized results. A storage reader covers smaller datasets, and the Cost Management API is used when no hub is present. | ||
|
|
||
| - **Safe by default** <br> Analysis scans are read-only. Optional remediation tools preview changes by default and are disabled unless an operator explicitly enables a write mode. | ||
|
|
||
| ## Benefits | ||
|
|
||
| FinOps multitool shortens the path from "what is this costing us?" to a specific, actionable list. Instead of checking Azure Advisor, Cost Analysis, Resource Graph, and the budgets blade separately, you run one scan and get the findings together, scoped to the subscriptions you care about. | ||
|
|
||
| ## Why FinOps multitool? | ||
|
|
||
| [FinOps workbooks](../workbooks/finops-workbooks-overview.md) and the [Azure Optimization Engine](../optimization-engine/overview.md) surface optimization opportunities in the Azure portal. FinOps multitool brings the same class of insight to the terminal and to AI agents, so engineers can scan an environment during a working session without switching context, and agents can ground their answers in real resource state. | ||
|
|
||
| ## Required permissions | ||
|
|
||
| Most scans need [Reader](/azure/role-based-access-control/built-in-roles#reader) or [Cost Management Reader](/azure/role-based-access-control/built-in-roles#cost-management-reader) on the target scope. Account scans (billing structure, contract info, and Microsoft Azure Consumption Commitment balance) also need [Billing Reader](/azure/role-based-access-control/built-in-roles#billing-reader), or Enterprise Administrator (reader) on an Enterprise Agreement. The carbon scan needs Reader or Carbon Optimization Reader. | ||
|
|
||
| ## Give feedback | ||
|
|
||
| Let us know how we're doing with a quick review. We use these reviews to improve and expand FinOps tools and resources. | ||
|
|
||
| <!-- prettier-ignore-start --> | ||
| > [!div class="nextstepaction"] | ||
| > [Give feedback](https://portal.azure.com/#view/HubsExtension/InProductFeedbackBlade/extensionName/FinOpsToolkit/cesQuestion/How%20easy%20or%20hard%20is%20it%20to%20use%20FinOps%20multitool%3F/cvaQuestion/How%20valuable%20are%20FinOps%20multitool%3F/surveyId/FTK/bladeName/Multitool/featureName/Overview) | ||
| <!-- prettier-ignore-end --> | ||
|
|
||
| If you're looking for something specific, vote for an existing or create a new idea. Share ideas with others to get more votes. We focus on ideas with the most votes. | ||
|
|
||
| <!-- prettier-ignore-start --> | ||
| > [!div class="nextstepaction"] | ||
| > [Vote on or suggest ideas](https://github.com/microsoft/finops-toolkit/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22Tool%3A%20PowerShell%22%20sort%3Areactions-%2B1-desc) | ||
| <!-- prettier-ignore-end --> | ||
|
|
||
| <br> | ||
|
|
||
| ## Related content | ||
|
|
||
| Related FinOps capabilities: | ||
|
|
||
| - [Reporting and analytics](../../framework/understand/reporting.md) | ||
| - [Workload optimization](../../framework/optimize/workloads.md) | ||
| - [Rate optimization](../../framework/optimize/rates.md) | ||
|
|
||
| Related products: | ||
|
|
||
| - [Azure Resource Graph](/azure/governance/resource-graph/) | ||
| - [Cost Management](/azure/cost-management-billing/) | ||
|
|
||
| Related solutions: | ||
|
|
||
| - [FinOps multitool commands](../powershell/multitool/finops-multitool-commands.md) | ||
| - [FinOps hubs](../hubs/finops-hubs-overview.md) | ||
| - [FinOps workbooks](../workbooks/finops-workbooks-overview.md) | ||
|
|
||
| <br> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| --- | ||
| title: FinOps multitool commands | ||
| description: Learn about PowerShell commands in the FinOpsToolkit module that scan an Azure environment for cost optimization, governance, and FinOps insights. | ||
| author: z-larsen | ||
| ms.author: zlarsen | ||
| ms.date: 08/19/2026 | ||
| ms.topic: reference | ||
| ms.service: finops | ||
| ms.subservice: finops-toolkit | ||
| ms.reviewer: micflan | ||
| #customer intent: As a FinOps user, I want to understand what FinOps multitool commands are available in the FinOpsToolkit module. | ||
| --- | ||
|
|
||
| # FinOps multitool commands | ||
|
|
||
| The FinOps multitool PowerShell commands help you scan an Azure environment for cost optimization, governance, and FinOps insights. Findings are grounded in your live resource state and cover cost trends, orphaned resources, idle VMs, tag hygiene, reservation and savings plan utilization, Azure Hybrid Benefit opportunities, budgets, anomaly alerts, and policy compliance. | ||
|
|
||
| The Multitool delivers one scan engine through two interfaces: | ||
|
|
||
| - **Terminal UI (TUI)** – An interactive, cross-platform terminal experience launched with [Start-FinOpsMultitool](Start-FinOpsMultitool.md). It surfaces 26 of the 30 scans. | ||
| - **Agent skills** - A set of skills that teach AI assistants which investigation answers a question, the queries behind it, and how to read the results. | ||
|
|
||
| <br> | ||
|
|
||
| ## Commands | ||
|
|
||
| - [Start-FinOpsMultitool](Start-FinOpsMultitool.md) – Launch the interactive FinOps multitool terminal UI. | ||
|
|
||
| <br> | ||
|
|
||
| ## Scan coverage | ||
|
|
||
| The Multitool includes 30 scan modules across the following categories: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤖 [AI][Claude Code] This "Scan coverage" list is stale/incomplete against the actual 40 tools in
Also, "Analysis scans are read-only and use Reader or Cost Management Reader access" below this list has the same permission-role gap noted on |
||
|
|
||
| - **Optimization** – Orphaned resources, idle VMs, storage tier advice, Azure Hybrid Benefit opportunities, and legacy resources. | ||
| - **Governance** – Tag inventory and recommendations, and policy inventory and recommendations. | ||
| - **Cost analysis** – Cost data, resource costs, cost by tag, cost trend, unit economics, VM cost breakdown, shared cost allocation, billing account, and usage allocation. | ||
| - **Commitments** – Reservation advice, commitment utilization, and realized savings. | ||
| - **Monitoring** – Budget status, budget history, and anomaly alerts. | ||
| - **Advisor** – Azure Advisor cost recommendations. | ||
| - **Account** – Billing structure, contract info, and Microsoft Azure Consumption Commitment (MACC) balance. | ||
| - **AI and ML** – Azure AI workload spend. | ||
| - **Sustainability** – Carbon emissions. | ||
|
|
||
| Analysis scans are read-only. Most need Reader or Cost Management Reader access. Account scans also need Billing Reader, or Enterprise Administrator (reader) on an Enterprise Agreement. The carbon scan needs Reader or Carbon Optimization Reader. | ||
|
|
||
| <br> | ||
|
|
||
| ## FinOps hub data paths | ||
|
|
||
| When a [FinOps hub](../../hubs/finops-hubs-overview.md) is present, cost scans read from the hub and choose the path automatically: | ||
|
|
||
| - **Kusto database (recommended for large environments)** – When the hub has an Azure Data Explorer or Microsoft Fabric cluster, the Multitool discovers it through Azure Resource Graph and pushes aggregation into the engine, returning only summarized results. This scales to large datasets without loading raw cost rows into PowerShell. To query a local hub on your own hardware, set the `FINOPS_HUB_KUSTO_URI` environment variable to a local Kusto endpoint (optionally set `FINOPS_HUB_KUSTO_DB`, which defaults to `Hub`). | ||
| - **Storage reader (small-dataset fallback)** – When no Kusto cluster is reachable, the Multitool reads the hub's storage export and aggregates in PowerShell. Use this for smaller datasets. | ||
|
|
||
| If no hub is available, cost scans use the live Cost Management API. | ||
|
|
||
| <br> | ||
|
|
||
| ## Agent skills | ||
|
|
||
| A companion set of agent skills carries the same analysis as guidance an AI agent can act on: which investigation answers the question, the Resource Graph and Cost Management queries behind it, and the places raw results mislead. Agents run the queries through Azure CLI or an Azure MCP server, so no additional server is required. | ||
|
|
||
| The `finops-multitool` skill is the routing hub and hands off to FinOps-adjacent skills for reporting, allocation, governance, unit economics, and more. The skills are read-only by design—remediation stays in the terminal UI, where every write previews first and requires confirmation. | ||
|
|
||
| <br> | ||
|
|
||
| ## Give feedback | ||
|
|
||
| Let us know how we're doing with a quick review. We use these reviews to improve and expand FinOps tools and resources. | ||
|
|
||
| <!-- prettier-ignore-start --> | ||
| > [!div class="nextstepaction"] | ||
| > [Give feedback](https://portal.azure.com/#view/HubsExtension/InProductFeedbackBlade/extensionName/FinOpsToolkit/cesQuestion/How%20easy%20or%20hard%20is%20it%20to%20use%20the%20FinOps%20toolkit%20PowerShell%20module%3F/cvaQuestion/How%20valuable%20are%20the%20FinOps%20toolkit%20PowerShell%20module%3F/surveyId/FTK/bladeName/PowerShell/featureName/Multitool) | ||
| <!-- prettier-ignore-end --> | ||
|
|
||
| If you're looking for something specific, vote for an existing or create a new idea. Share ideas with others to get more votes. We focus on ideas with the most votes. | ||
|
|
||
| <!-- prettier-ignore-start --> | ||
| > [!div class="nextstepaction"] | ||
| > [Vote on or suggest ideas](https://github.com/microsoft/finops-toolkit/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22Tool%3A%20PowerShell%22%20sort%3A"reactions-%2B1-desc") | ||
| <!-- prettier-ignore-end --> | ||
|
|
||
| <br> | ||
|
|
||
| ## Related content | ||
|
|
||
| Related solutions: | ||
|
|
||
| - [FinOps toolkit PowerShell module](../powershell-commands.md) | ||
| - [FinOps hubs](../../hubs/finops-hubs-overview.md) | ||
|
|
||
| <br> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,88 @@ | ||
| --- | ||
| title: Start-FinOpsMultitool command | ||
| description: Launch the FinOps multitool interactive terminal UI to scan an Azure environment for cost optimization, governance, and FinOps insights. | ||
| author: z-larsen | ||
| ms.author: zlarsen | ||
| ms.date: 07/02/2026 | ||
| ms.topic: reference | ||
| ms.service: finops | ||
| ms.subservice: finops-toolkit | ||
| ms.reviewer: micflan | ||
| #customer intent: As a FinOps user, I want to understand how to use the Start-FinOpsMultitool command in the FinOpsToolkit module. | ||
| --- | ||
|
|
||
| # Start-FinOpsMultitool command | ||
|
|
||
| The **Start-FinOpsMultitool** command launches the FinOps multitool interactive terminal UI (TUI). The tool authenticates to Azure, discovers accessible subscriptions, and runs the scan modules you select—covering cost trends, orphaned resources, idle VMs, tag hygiene, reservation and savings plan utilization, Azure Hybrid Benefit opportunities, budgets, anomaly alerts, and policy compliance. | ||
|
|
||
| Results are rendered in the terminal. When you choose to export, the tool writes a CSV file per scan module, an `FinOpsReport.html` summary, and a `ScanSummary.txt` file. The scan modules are read-only. | ||
|
|
||
| The command runs on PowerShell 5.1 or later on Windows, and PowerShell 7 or later on all platforms. It requires the `Az.Accounts`, `Az.ResourceGraph`, and `Az.Storage` modules. Most scans need Reader or Cost Management Reader access on the target scope. Account scans (billing structure, contract info, and MACC commitment) also need Billing Reader, or Enterprise Administrator (reader) on an Enterprise Agreement. The carbon scan needs Reader or Carbon Optimization Reader. | ||
|
|
||
| <br> | ||
|
|
||
| ## Syntax | ||
|
|
||
| ```powershell | ||
| Start-FinOpsMultitool ` | ||
| [-SubscriptionId <string>] ` | ||
| [-OutputPath <string>] ` | ||
| [<CommonParameters>] | ||
| ``` | ||
|
|
||
| <br> | ||
|
|
||
| ## Parameters | ||
|
|
||
| | Name | Description | | ||
| | ----------------- | -------------------------------------------------------------------------------------------------------------- | | ||
| | `‑SubscriptionId` | Optional. Scopes the scan to a single subscription. When omitted, all accessible subscriptions are discovered. | | ||
| | `‑OutputPath` | Optional. Directory for exported result files. Defaults to the tool's working folder. | | ||
|
|
||
| <br> | ||
|
|
||
| ## Examples | ||
|
|
||
| The following examples demonstrate how to use the Start-FinOpsMultitool command. | ||
|
|
||
| ### Launch the Multitool | ||
|
|
||
| ```powershell | ||
| Start-FinOpsMultitool | ||
| ``` | ||
|
|
||
| Launches the terminal UI. You're prompted to authenticate, select a tenant if needed, and choose the subscriptions and modules to scan. | ||
|
|
||
| ### Scope to a single subscription | ||
|
|
||
| ```powershell | ||
| Start-FinOpsMultitool -SubscriptionId '00000000-0000-0000-0000-000000000000' | ||
| ``` | ||
|
|
||
| Launches the terminal UI scoped to a single subscription. | ||
|
|
||
| ### Set an output path for exports | ||
|
|
||
| ```powershell | ||
| Start-FinOpsMultitool -OutputPath './finops-results' | ||
| ``` | ||
|
|
||
| Launches the terminal UI and writes exported result files to the specified directory. | ||
|
|
||
| <br> | ||
|
|
||
| ## FinOps hub data paths | ||
|
|
||
| When a [FinOps hub](../../hubs/finops-hubs-overview.md) is present, choosing the **FinOps Hub** data source prefers the hub's Azure Data Explorer or Microsoft Fabric Kusto database—aggregation is pushed into the engine and only summarized results are returned, so large hubs are never loaded into PowerShell. To query a local hub on your own hardware, set `FINOPS_HUB_KUSTO_URI` to a local Kusto endpoint. When no Kusto cluster is reachable, the Multitool falls back to reading the hub storage export, which is intended for smaller datasets. For more information, see [FinOps multitool commands](finops-multitool-commands.md). | ||
|
|
||
| <br> | ||
|
|
||
| ## Related content | ||
|
|
||
| Related solutions: | ||
|
|
||
| - [FinOps multitool commands](finops-multitool-commands.md) | ||
| - [FinOps toolkit PowerShell module](../powershell-commands.md) | ||
| - [FinOps hubs](../../hubs/finops-hubs-overview.md) | ||
|
|
||
| <br> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 [AI][Claude Code]⚠️ Should fix
This "Scan coverage" list is stale/incomplete against the actual 40 tools in
Start-McpServer.ps1:scan_ai_workloads) and Sustainability (scan_carbon).scan_legacy_resources.scan_unit_economics,scan_vm_cost_breakdown,scan_allocate_shared_cost,set_cost_allocation_rule,scan_billing_account,scan_usage_allocation,detect_cost_data_source).scan_budget_history.Get-TenantHierarchy.ps1is dead code — it's dot-sourced by the module but wired into neither the MCP tool list nor the TUI's module array. The real third Account item isscan_macc_commitment, which this list omits entirely.Also, "Analysis scans are read-only and use Reader or Cost Management Reader access" below this list has the same permission-role gap noted on
start-finopsmultitool.md(Billing Reader / Carbon Optimization Reader not mentioned).