https://github.com/arvid-berndtsson/lazyms

Lazy Microsoft Security

https://github.com/arvid-berndtsson/lazyms

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

microsoft-azure microsoft-security tui
Last synced: 6 months ago · JSON representation

Repository

Lazy Microsoft Security

Basic Info
  • Host: GitHub
  • Owner: arvid-berndtsson
  • License: mit
  • Language: Go
  • Default Branch: main
  • Homepage:
  • Size: 30.3 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Topics
microsoft-azure microsoft-security tui
Created 6 months ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

lazyms — Azure Security TUI (Go)

A fast, keyboard-first terminal UI for Azure/Microsoft 365 security work:

  • Browse & query Azure resources (via Azure Resource Graph)
  • Look up and triage security incidents
  • View & modify Microsoft security policies (Conditional Access, Intune)
  • Create application update rings (Windows Update for Business)
  • Works on macOS, Linux, and Windows — mouse & keyboard

Status: alpha. Expect dragons 🐉

✨ Features (alpha scope)

  • LazyGit-style panes, Tab/Shift+Tab focus switching
  • Mouse focus & wheel scrolling
  • Preset KQL queries + custom editor
  • Incidents list with detail view and quick actions
  • Policy view with guarded edit/confirm flows
  • Update ring creation wizard

🔧 Installation

From a release (recommended)

Grab the latest asset from Releases and put lazyms on your PATH.

Build from source

bash git clone https://github.com/arvid-berndtsson/lazyms cd lazyms go mod tidy go build -o bin/lazyms ./cmd/lazyms

🔐 Authentication

The tool supports:

  1. Azure CLI login (SSO): if you’ve run az login, we’ll use it automatically.
  2. Device Code flow: if CLI is unavailable, we print a code & URL to authenticate.

You may set these (optional) in ~/.config/lazyms/config.yaml:

yaml tenantId: "<your-tenant-guid-or-domain>" clientId: "<your-aad-app-client-id>" auth: "cli" # or "devicecode"

Note: Microsoft Graph and Azure Resource Manager are different audiences; we request tokens for both as needed. Ensure your AAD app has the required permissions for the endpoints you’ll use.

⌨️ Keybindings

  • Tab / Shift+Tab — Next / Previous pane
  • Ctrl+h / Ctrl+l / ← / → — Focus left/right
  • Up/Down / PgUp/PgDn — Navigate in pane
  • / — Edit query / filter (left pane)
  • r — Refresh
  • e — Edit (policy/selection)
  • o — Open in browser (incident/policy)
  • Enter — View details
  • q — Quit

Mouse:

  • Click focuses a pane
  • Wheel scrolls focused pane

🧪 Development

Lint & test:

bash golangci-lint run go test ./...

Run in dev:

bash go run ./cmd/lazyms

🚢 Release

We use GoReleaser via GitHub Actions. To cut a release:

bash git tag v0.1.0 git push origin v0.1.0

This builds macOS (amd64/arm64), Linux (amd64/arm64), Windows (amd64), creates archives and checksums, and publishes a GitHub Release.

⚠️ Permissions & Safety

  • Least-privilege: grant only the Graph/ARM permissions you need.
  • Editing policies is powerful — every mutation shows a dry-run preview; you must confirm before applying.
  • No tokens are written to disk by default.

📍 Roadmap

See the repository Issues for milestones:

  • ARG queries + presets
  • Security Incidents triage
  • Conditional Access + Intune edit flows
  • Update rings wizard
  • Config & logging polish

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

Owner

  • Name: Arvid Berndtsson
  • Login: arvid-berndtsson
  • Kind: user
  • Location: Sweden
  • Company: @LimeTip

Based in Malmö, Sweden, I specialize in software development and digital sustainability. Founder of @LimeTip and Co-Founder of @merely-emissions

GitHub Events

Total
  • Delete event: 2
  • Push event: 6
  • Pull request event: 2
  • Create event: 5
Last Year
  • Delete event: 2
  • Push event: 6
  • Pull request event: 2
  • Create event: 5

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 minutes
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • arvid-berndtsson (5)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-go v5 composite
  • golangci/golangci-lint-action v6 composite
.github/workflows/release.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-go v5 composite
  • golangci/golangci-lint-action v6 composite
  • goreleaser/goreleaser-action v6 composite
go.mod go
  • github.com/aymanbagabas/go-osc52/v2 v2.0.1
  • github.com/charmbracelet/bubbles v0.21.0
  • github.com/charmbracelet/bubbletea v1.3.6
  • github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc
  • github.com/charmbracelet/lipgloss v1.1.0
  • github.com/charmbracelet/x/ansi v0.9.3
  • github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd
  • github.com/charmbracelet/x/term v0.2.1
  • github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f
  • github.com/lucasb-eyer/go-colorful v1.2.0
  • github.com/mattn/go-isatty v0.0.20
  • github.com/mattn/go-localereader v0.0.1
  • github.com/mattn/go-runewidth v0.0.16
  • github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6
  • github.com/muesli/cancelreader v0.2.2
  • github.com/muesli/termenv v0.16.0
  • github.com/rivo/uniseg v0.4.7
  • github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
  • golang.org/x/sync v0.15.0
  • golang.org/x/sys v0.33.0
  • golang.org/x/text v0.3.8
go.sum go
  • github.com/aymanbagabas/go-osc52/v2 v2.0.1
  • github.com/aymanbagabas/go-udiff v0.2.0
  • github.com/charmbracelet/bubbles v0.21.0
  • github.com/charmbracelet/bubbletea v1.3.6
  • github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc
  • github.com/charmbracelet/lipgloss v1.1.0
  • github.com/charmbracelet/x/ansi v0.9.3
  • github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd
  • github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91
  • github.com/charmbracelet/x/term v0.2.1
  • github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f
  • github.com/lucasb-eyer/go-colorful v1.2.0
  • github.com/mattn/go-isatty v0.0.20
  • github.com/mattn/go-localereader v0.0.1
  • github.com/mattn/go-runewidth v0.0.16
  • github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6
  • github.com/muesli/cancelreader v0.2.2
  • github.com/muesli/termenv v0.16.0
  • github.com/rivo/uniseg v0.2.0
  • github.com/rivo/uniseg v0.4.7
  • github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
  • golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561
  • golang.org/x/sync v0.15.0
  • golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e
  • golang.org/x/sys v0.6.0
  • golang.org/x/sys v0.33.0
  • golang.org/x/text v0.3.8