https://github.com/arvid-berndtsson/lazyms
Lazy Microsoft Security
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
Repository
Lazy Microsoft Security
Basic Info
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
- Releases: 0
Topics
Metadata Files
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:
- Azure CLI login (SSO): if you’ve run az login, we’ll use it automatically.
- 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
- Website: https://arvidberndtsson.com
- Repositories: 1
- Profile: https://github.com/arvid-berndtsson
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
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-go v5 composite
- golangci/golangci-lint-action v6 composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-go v5 composite
- golangci/golangci-lint-action v6 composite
- goreleaser/goreleaser-action v6 composite
- 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
- 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