https://github.com/edglz/dev-workspace
Reproducible Windows + PowerShell 7 workspace: 60+ modern CLI tools, discoverable profile (ws/cheat/rules), Claude Code permission policy
https://github.com/edglz/dev-workspace
claude-code dev-environment dotfiles modern-cli powershell powershell-profile productivity scoop terminal windows
Last synced: 3 days ago
JSON representation
Reproducible Windows + PowerShell 7 workspace: 60+ modern CLI tools, discoverable profile (ws/cheat/rules), Claude Code permission policy
- Host: GitHub
- URL: https://github.com/edglz/dev-workspace
- Owner: edglz
- License: mit
- Created: 2026-05-06T04:36:55.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-04T20:20:23.000Z (20 days ago)
- Last Synced: 2026-06-04T22:09:41.339Z (20 days ago)
- Topics: claude-code, dev-environment, dotfiles, modern-cli, powershell, powershell-profile, productivity, scoop, terminal, windows
- Language: PowerShell
- Homepage: https://github.com/edglz/dev-workspace
- Size: 42 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# dev-workspace
[](https://github.com/edglz/dev-workspace/releases)
[](LICENSE)
[](https://github.com/PowerShell/PowerShell)
A reproducible Windows + PowerShell 7 development environment: 64 modern CLI tools, sensible aliases, a discoverable PowerShell profile, and a Claude Code permission policy that auto-approves safe commands while still asking before destructive ones.
## Quick start
```powershell
git clone https://github.com/edglz/dev-workspace.git
cd dev-workspace
.\install.ps1
```
Open a new PowerShell session and run `ws` for the workspace overview.
The installer is idempotent: rerun it any time to re-sync after pulling new commits. Use `-SkipScoop`, `-SkipPip`, `-SkipNpm`, `-SkipProfile` or `-SkipSettings` to skip parts.
## What it sets up
- **Scoop buckets**: `main`, `extras`, `java`.
- **58 packages via Scoop** (modern CLI replacements, runtimes, Kubernetes, IaC, mobile, cloud, prompt engine).
- **3 Python tools via pip**: `httpie`, `posting`, `pgcli` (path is added to user `Path`).
- **2 npm globals**: `wrangler`, `@expo/cli`.
- **PowerShell profile** (`profile.ps1`) at `CurrentUserAllHosts`, plus a stub at `WindowsPowerShell\Microsoft.PowerShell_profile.ps1` so Windows PowerShell 5.1 inherits the same setup.
- **Oh My Posh prompt** (`workspace.omp.json`) — a custom two-line theme matching the workspace palette (cyan paths, yellow git, magenta when dirty, gray timing). Initialized automatically by `profile.ps1` when `oh-my-posh` is on PATH.
- **Claude Code `settings.json`** with permission rules and an empty attribution so commits stay clean.
## Profile commands
| Command | What it does |
| ---------------- | --------------------------------------------------- |
| `ws` | Workspace overview: tools, aliases, perms summary |
| `cheat` | Tool catalog grouped by category |
| `cheat ` | One tool with description and example |
| `cheat-search k` | Filter the catalog by keyword |
| `rules` | Claude Code allow/ask/deny rules with grouping |
| `paths` | Profile, settings, memory, scoop locations |
| `aliases-modern` | Active modern-CLI aliases |
| `z ` | Jump to a directory by frequency (zoxide) |
Every command supports `-Object` (where applicable) to return PSCustomObjects so you can pipe into `Where-Object`, `Sort-Object`, `Format-Table` etc.
## Aliases
| Alias | Target | Replaces |
| ------ | ------- | ------------- |
| `ls` | `eza` | `ls` |
| `ll` | `eza` | `ls -l` |
| `cat` | `bat` | `cat` |
| `grep` | `rg` | `grep` |
| `find` | `fd` | `find` |
| `top` | `btop` | `top`/`htop` |
| `ps2` | `procs` | `ps` |
| `dig` | `dog` | `dig` |
| `diff` | `difft` | `diff` |
| `curl` | `xh` | `curl` |
| `man` | `tldr` | `man` |
| `l` | function `eza --icons --git` |
| `la` | function `eza --icons --git -la` |
| `lt` | function `eza --icons --git --tree -L=2` |
| `z` | `__zoxide_z` | `cd` |
## Tools
| Category | Tools |
| ---------- | ----- |
| Modern CLI | eza, bat, rg, fd, sd, delta, difft, zoxide, dust, duf, xh, dog, btop, procs, hyperfine, tldr, jaq, yq, dasel, fzf, lazygit, just, watchexec, gping, trip, tokei |
| Runtime | node, bun, pnpm, deno, python, go, java (Temurin 21), gradle, mvn, mise |
| VCS | gh |
| Cloud | ngrok, cloudflared, rclone, wrangler |
| API | atac, posting, http, grpcurl |
| DB | mongosh, pgcli, supabase |
| Kubernetes | kubectl, k9s, kubectx, kubens, helm, stern, dive, minikube, kind |
| IaC | terraform, pulumi |
| Mobile | flutter, expo |
| Misc | glow, scoop, oh-my-posh, rtk |
Run `cheat` for the full catalog with descriptions and examples.
## Claude Code rules
The `settings.template.json` configures permissions so Claude can run safe operations without prompting and asks before destructive ones. Counters at time of writing:
| Effect | Rules | Behaviour |
| ------ | ----- | ---------------------------------- |
| allow | 152 | Auto-approved, no prompt |
| ask | 95 | Always confirm before running |
| deny | 0 | Nothing fully blocked |
Highlights:
- **allow**: every modern CLI, all runtimes (`node`, `bun`, `pnpm`, `deno`, `python`, `go`, `java`, `mvn`, `gradle`, `mise`), `git`, `gh`, `docker`, every Kubernetes tool, `terraform`, `pulumi`, `flutter`, `expo`, all profile commands.
- **ask**: `git reset`, `git push --force` and friends, `rm -rf`, `Remove-Item -Force`, `terraform apply/destroy`, `pulumi up/destroy`, `kubectl delete`, `helm uninstall`, `supabase db reset`, `rclone sync/delete/purge`, `npm publish`, `docker rm/rmi/system prune`, `sudo`, `scoop uninstall/reset`, and other one-way operations.
- `attribution.commit` and `attribution.pr` are set to empty strings so commits and PR descriptions are not auto-trailered.
The `hooks.PreToolUse` entry routes Bash calls through `rtk hook claude` (RTK is a token-optimizing CLI proxy). Remove the `hooks` block in `settings.template.json` before installing if you do not use RTK.
## Repository layout
```
dev-workspace/
README.md this file
CHANGELOG.md release notes
LICENSE MIT
profile.ps1 PowerShell 7+ profile (CurrentUserAllHosts)
workspace.omp.json Oh My Posh theme matching the workspace palette
windowsPowerShell-stub.ps1 Stub that makes Windows PowerShell 5.1 source profile.ps1
settings.template.json Claude Code settings template
install.ps1 Idempotent installer
.gitignore
.github/
ISSUE_TEMPLATE/ bug + feature templates
pull_request_template.md
```
## Re-sync after pulling
```powershell
git pull
.\install.ps1 # all steps, idempotent
.\install.ps1 -SkipScoop -SkipPip -SkipNpm # only refresh profile + settings
```
## Manual steps the installer does not cover
- Sign in to `gh auth login` if you want GitHub CLI.
- Run `flutter doctor` if you plan to build for Android (it will prompt for the Android SDK).
- `rtk` is not installed by `install.ps1` because it lives outside Scoop. Install it separately if you want the Bash-hook token optimization, otherwise edit `settings.template.json` to drop the `hooks` block.
## License
MIT.