{"id":19811264,"url":"https://github.com/cosmictoast/zpe","last_synced_at":"2026-05-11T13:05:07.313Z","repository":{"id":94771025,"uuid":"178746991","full_name":"CosmicToast/zpe","owner":"CosmicToast","description":"Z Project Environments","archived":false,"fork":false,"pushed_at":"2019-09-24T00:29:52.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-06T16:38:16.467Z","etag":null,"topics":["project-management","shell","zsh"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/CosmicToast.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2019-03-31T22:00:59.000Z","updated_at":"2021-05-28T13:17:17.000Z","dependencies_parsed_at":"2023-03-13T16:57:35.461Z","dependency_job_id":null,"html_url":"https://github.com/CosmicToast/zpe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CosmicToast/zpe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmicToast%2Fzpe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmicToast%2Fzpe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmicToast%2Fzpe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmicToast%2Fzpe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CosmicToast","download_url":"https://codeload.github.com/CosmicToast/zpe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmicToast%2Fzpe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32895978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"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":["project-management","shell","zsh"],"created_at":"2024-11-12T09:25:33.401Z","updated_at":"2026-05-11T13:05:07.276Z","avatar_url":"https://github.com/CosmicToast.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Z Project Environments\nChloe Kudryavtsev \u003ctoast@toastin.space\u003e\n\n:build: https://cloud.drone.io/5paceToast/zpe\n:repo: https://github.com/5paceToast\nifdef::env-github[]\n:status:\nendif::[]\n\nifdef::status[]\nimage:https://cloud.drone.io/api/badges/5paceToast/zpe/status.svg[Build Status (Drone), link={build}]\nendif::[]\n\n== A manager for your messy projects\n\n=== Introduction\nI have something like 30-50 repositories in my `~/Workspace`.\nThat is absolutely awful.\nAt some point, I tried to subdivide them into \"categories\" like \"dev\", \"sys\", \"alpine\" and so on.\nThat didn't help much.\n\nI clearly needed something to help me navigate around them, in a sort of \"bookmark\"ish way, and handle initial setup.\nSo I accidentally wrote the SysV RC in zsh.\n\n=== Installation\n1. Acquire `zpe.zwc`\n  a. Download it from the GitHub releases page\n  b. Use gmake with zsh installed to generate it from source\n2. Store it in a consistent location\n3. Add the file to your `fpath` (example: `fpath+=( ~/.zsh/zpe.zwc )`)\n4. Autoload all the contents of the digest file (example: `autoload -w ~/.zsh/zpe.zwc`)\n\nNOTE: If you're using the latest version of toasty-zsh, you can simply drop `zpe.zwc` into your `$zd/digests` folder.\n\n=== Usage\n`zpe` is the main function name.\nEverything is done through subcommands.\n\n`zpe new`::\nCreates a new project environment.\nEffectively, this creates three new files inside `$ZPE_DIR` (`name.up`, `name.down` and `name.env`), and populates them with defaults.\nYou also can optionally pass it a directory for the project in question.\nIt defaults to the current working directory.\nExample: `zpe new tzsh ~/Workspace/sys/toasty-zsh`\n\n`zpe edit`::\nEdits one of the three files created by `zpe new`.\nDefaults to editing `name.up`.\nPass an extra parameter to give the suffix to edit.\nExample: `zpe edit tzsh env`\n\n`zpe load`::\nLoads one of the following:\n- global configuration (`zpe.conf`)\n- `name.env` if only name is passed\n- `name.ext` if name and an ext is passed\n+\nExample: `zpe load tzsh down`\n\n`zpe ls|list`::\nLists the projects in their \"callable\" form.\nUsually sorted, but not guaranteed to be such.\nIf an argument is provided, it takes that to be a project name and lists the files under that project (e.g \"up\" and \"down\").\n\n`zpe cat`::\nPrints the contents of a given project file.\n\n`zpe cp|copy`::\nCopies project from argument 1 to argument 2.\nBest effort to translate variable names.\n\n`zpe mv|move`::\nRenames project from argument 1 to argument 2.\nBest effort to translate variable names.\n\n`zpe exec`::\nRuns a command in the context of a project.\nExample: `zpe exec tzsh git pull`\n+\nWARNING: The parsing is simplistic: `$1` is the project name and the other arguments are evaluated as-is.\n\n`zpe rm`::\nRemoves a project.\nMore precisely, it removes `$1.*` from `$ZPE_DIR`.\nExample: `zpe rm tzsh`\n\n`zpe up|down`::\nConvenience shortcuts for `zpe load $1 up|down`.\nExample: `zpe up tzsh`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmictoast%2Fzpe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcosmictoast%2Fzpe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmictoast%2Fzpe/lists"}