{"id":51025298,"url":"https://github.com/edglz/dev-workspace","last_synced_at":"2026-06-21T19:01:30.087Z","repository":{"id":355983998,"uuid":"1230522183","full_name":"edglz/dev-workspace","owner":"edglz","description":"Reproducible Windows + PowerShell 7 workspace: 60+ modern CLI tools, discoverable profile (ws/cheat/rules), Claude Code permission policy","archived":false,"fork":false,"pushed_at":"2026-06-04T20:20:23.000Z","size":43,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-04T22:09:41.339Z","etag":null,"topics":["claude-code","dev-environment","dotfiles","modern-cli","powershell","powershell-profile","productivity","scoop","terminal","windows"],"latest_commit_sha":null,"homepage":"https://github.com/edglz/dev-workspace","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edglz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-06T04:36:55.000Z","updated_at":"2026-06-04T20:20:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edglz/dev-workspace","commit_stats":null,"previous_names":["edglz/dev-workspace"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/edglz/dev-workspace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edglz%2Fdev-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edglz%2Fdev-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edglz%2Fdev-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edglz%2Fdev-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edglz","download_url":"https://codeload.github.com/edglz/dev-workspace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edglz%2Fdev-workspace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34622271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","dev-environment","dotfiles","modern-cli","powershell","powershell-profile","productivity","scoop","terminal","windows"],"created_at":"2026-06-21T19:01:28.303Z","updated_at":"2026-06-21T19:01:30.080Z","avatar_url":"https://github.com/edglz.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dev-workspace\n\n[![release](https://img.shields.io/github/v/release/edglz/dev-workspace?display_name=tag)](https://github.com/edglz/dev-workspace/releases)\n[![license](https://img.shields.io/github/license/edglz/dev-workspace)](LICENSE)\n[![PowerShell 7+](https://img.shields.io/badge/PowerShell-7%2B-5391FE?logo=powershell\u0026logoColor=white)](https://github.com/PowerShell/PowerShell)\n\nA 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.\n\n## Quick start\n\n```powershell\ngit clone https://github.com/edglz/dev-workspace.git\ncd dev-workspace\n.\\install.ps1\n```\n\nOpen a new PowerShell session and run `ws` for the workspace overview.\n\nThe installer is idempotent: rerun it any time to re-sync after pulling new commits. Use `-SkipScoop`, `-SkipPip`, `-SkipNpm`, `-SkipProfile` or `-SkipSettings` to skip parts.\n\n## What it sets up\n\n- **Scoop buckets**: `main`, `extras`, `java`.\n- **58 packages via Scoop** (modern CLI replacements, runtimes, Kubernetes, IaC, mobile, cloud, prompt engine).\n- **3 Python tools via pip**: `httpie`, `posting`, `pgcli` (path is added to user `Path`).\n- **2 npm globals**: `wrangler`, `@expo/cli`.\n- **PowerShell profile** (`profile.ps1`) at `CurrentUserAllHosts`, plus a stub at `WindowsPowerShell\\Microsoft.PowerShell_profile.ps1` so Windows PowerShell 5.1 inherits the same setup.\n- **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.\n- **Claude Code `settings.json`** with permission rules and an empty attribution so commits stay clean.\n\n## Profile commands\n\n| Command          | What it does                                        |\n| ---------------- | --------------------------------------------------- |\n| `ws`             | Workspace overview: tools, aliases, perms summary   |\n| `cheat`          | Tool catalog grouped by category                    |\n| `cheat \u003ctool\u003e`   | One tool with description and example               |\n| `cheat-search k` | Filter the catalog by keyword                       |\n| `rules`          | Claude Code allow/ask/deny rules with grouping      |\n| `paths`          | Profile, settings, memory, scoop locations          |\n| `aliases-modern` | Active modern-CLI aliases                           |\n| `z \u003cfragment\u003e`   | Jump to a directory by frequency (zoxide)           |\n\nEvery command supports `-Object` (where applicable) to return PSCustomObjects so you can pipe into `Where-Object`, `Sort-Object`, `Format-Table` etc.\n\n## Aliases\n\n| Alias  | Target  | Replaces      |\n| ------ | ------- | ------------- |\n| `ls`   | `eza`   | `ls`          |\n| `ll`   | `eza`   | `ls -l`       |\n| `cat`  | `bat`   | `cat`         |\n| `grep` | `rg`    | `grep`        |\n| `find` | `fd`    | `find`        |\n| `top`  | `btop`  | `top`/`htop`  |\n| `ps2`  | `procs` | `ps`          |\n| `dig`  | `dog`   | `dig`         |\n| `diff` | `difft` | `diff`        |\n| `curl` | `xh`    | `curl`        |\n| `man`  | `tldr`  | `man`         |\n| `l`    | function `eza --icons --git`             |\n| `la`   | function `eza --icons --git -la`         |\n| `lt`   | function `eza --icons --git --tree -L=2` |\n| `z`    | `__zoxide_z` | `cd`     |\n\n## Tools\n\n| Category   | Tools |\n| ---------- | ----- |\n| 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 |\n| Runtime    | node, bun, pnpm, deno, python, go, java (Temurin 21), gradle, mvn, mise |\n| VCS        | gh |\n| Cloud      | ngrok, cloudflared, rclone, wrangler |\n| API        | atac, posting, http, grpcurl |\n| DB         | mongosh, pgcli, supabase |\n| Kubernetes | kubectl, k9s, kubectx, kubens, helm, stern, dive, minikube, kind |\n| IaC        | terraform, pulumi |\n| Mobile     | flutter, expo |\n| Misc       | glow, scoop, oh-my-posh, rtk |\n\nRun `cheat` for the full catalog with descriptions and examples.\n\n## Claude Code rules\n\nThe `settings.template.json` configures permissions so Claude can run safe operations without prompting and asks before destructive ones. Counters at time of writing:\n\n| Effect | Rules | Behaviour                          |\n| ------ | ----- | ---------------------------------- |\n| allow  | 152   | Auto-approved, no prompt           |\n| ask    | 95    | Always confirm before running      |\n| deny   | 0     | Nothing fully blocked              |\n\nHighlights:\n\n- **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.\n- **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.\n- `attribution.commit` and `attribution.pr` are set to empty strings so commits and PR descriptions are not auto-trailered.\n\nThe `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.\n\n## Repository layout\n\n```\ndev-workspace/\n  README.md                       this file\n  CHANGELOG.md                    release notes\n  LICENSE                         MIT\n  profile.ps1                     PowerShell 7+ profile (CurrentUserAllHosts)\n  workspace.omp.json              Oh My Posh theme matching the workspace palette\n  windowsPowerShell-stub.ps1      Stub that makes Windows PowerShell 5.1 source profile.ps1\n  settings.template.json          Claude Code settings template\n  install.ps1                     Idempotent installer\n  .gitignore\n  .github/\n    ISSUE_TEMPLATE/               bug + feature templates\n    pull_request_template.md\n```\n\n## Re-sync after pulling\n\n```powershell\ngit pull\n.\\install.ps1                    # all steps, idempotent\n.\\install.ps1 -SkipScoop -SkipPip -SkipNpm   # only refresh profile + settings\n```\n\n## Manual steps the installer does not cover\n\n- Sign in to `gh auth login` if you want GitHub CLI.\n- Run `flutter doctor` if you plan to build for Android (it will prompt for the Android SDK).\n- `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.\n\n## License\n\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedglz%2Fdev-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedglz%2Fdev-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedglz%2Fdev-workspace/lists"}