git-hook-max 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,66 @@
1
+ # portman — localhost port management CLI
2
+
3
+ ## One-liner
4
+ A zero-dependency CLI that finds and kills processes on localhost ports — no more `lsof -i :3000` → `kill -9` → repeat.
5
+
6
+ ## Target user
7
+ Full-stack developers, DevOps engineers, and anyone who runs local servers (React, Node, Python, Docker, etc.) and constantly hits "EADDRINUSE" / "port already in use" errors.
8
+
9
+ ## Problem
10
+ Every developer wastes minutes per day dealing with stale processes holding ports:
11
+ - "Port 3000 is already in use" — what's using it?
12
+ - Forgot to Ctrl+C a dev server yesterday
13
+ - Docker containers left running
14
+ - Zombie Node/Python processes
15
+
16
+ Current workflow: `lsof -i :3000` → copy PID → `kill -9 12345` → hope you killed the right thing.
17
+ On Windows: `netstat -ano | findstr :3000` → `taskkill /PID 12345 /F` — even worse.
18
+
19
+ No dedicated, polished CLI tool exists. Developers cobble together shell aliases.
20
+
21
+ ## Why now
22
+ - AI coding agents (Claude Code, Codex, Cursor) spin up servers automatically and leave them running
23
+ - Microservice development means more concurrent local servers than ever
24
+ - The rise of `pnpm dev`, `next dev`, `vite`, `turbo dev` — more dev servers, more conflicts
25
+
26
+ ## MVP scope (buildable in <1 hour, zero paid deps)
27
+
28
+ 1. `portman list` — show all listening ports with process names and PIDs (cross-platform)
29
+ 2. `portman kill <port>` — find and kill the process on a given port, with confirmation
30
+ 3. `portman kill --all` — kill all known dev server ports (3000, 3001, 5000, 8000, 8080, etc.)
31
+ 4. `portman find <port>` — show what's using a port without killing it
32
+ 5. `portman free <port>` — check if a port is available
33
+ 6. `portman config` — manage a `~/.portmanrc` with custom port presets and ignore lists
34
+
35
+ ## Tech approach
36
+ - **Language**: Python 3.11+ (stdlib only for core; `psutil` as optional pip dep for better cross-platform support)
37
+ - **Cross-platform**: macOS, Linux, Windows (WSL native)
38
+ - **No API keys, no cloud, no accounts** — runs entirely locally
39
+ - **Install**: `pip install portman-cli` or `brew install portman`
40
+ - **Entry point**: `portman` CLI via `pyproject.toml` scripts
41
+
42
+ ## Monetization
43
+ - **Free tier**: All core commands (list, kill, find, free, config)
44
+ - **Pro tier** ($5/mo or $48/yr):
45
+ - `portman team` — shared port registry so teammates don't collide on the same ports
46
+ - `portman ci` — GitHub Actions integration that detects port conflicts in PRs
47
+ - `portman watch` — background daemon that auto-kills stale processes after N minutes of inactivity
48
+ - `portman history` — track which projects use which ports over time
49
+ - **Distribution**: npm (`npx portman`), pip, brew, standalone binary (PyInstaller)
50
+
51
+ ## Risks
52
+ 1. **Too simple** — might be seen as "just a shell alias." Mitigation: polish the UX (colors, tables, confirmation prompts, `--json` output) so it feels like a real tool.
53
+ 2. **Platform differences** — `lsof` vs `netstat` vs `Get-NetTCPConnection`. Mitigation: use `psutil` as the abstraction layer.
54
+ 3. **Existing alternatives** — `fkill`, `kill-port` (npm), shell aliases. Mitigation: portman is purpose-built for localhost dev ports with a better UX and team features.
55
+ 4. **Low willingness to pay** — developers expect CLI tools to be free. Mitigation: the free tier is fully functional; team/CI features are the paid upsell.
56
+
57
+ ## Definition of done for the MVP
58
+ - [ ] `portman list` works on macOS, Linux, and Windows
59
+ - [ ] `portman kill <port>` finds and kills the process with a confirmation prompt
60
+ - [ ] `portman find <port>` shows process info without killing
61
+ - [ ] `portman free <port>` returns exit code 0 (free) or 1 (in use)
62
+ - [ ] `~/.portmanrc` config file with custom presets
63
+ - [ ] `--json` flag on all commands for scripting
64
+ - [ ] `pyproject.toml` with proper entry point
65
+ - [ ] `pip install -e .` works locally
66
+ - [ ] README with install instructions and examples
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Eric Joye
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.4
2
+ Name: git-hook-max
3
+ Version: 0.1.0
4
+ Summary: Manage Git hooks across projects with a visual dashboard
5
+ Project-URL: Homepage, https://github.com/ericjoye/git-hook-manager-max
6
+ Project-URL: Issues, https://github.com/ericjoye/git-hook-manager-max/issues
7
+ Author-email: Eric JOYE <eric@ericjoye.com>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Keywords: cli,developer-tools,git,hooks,pre-commit,pre-push
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Software Development :: Version Control :: Git
18
+ Classifier: Topic :: Utilities
19
+ Requires-Python: >=3.11
20
+ Description-Content-Type: text/markdown
21
+
22
+ # git-hook-manager-max
23
+
24
+ A visual Git hook manager CLI. Create, edit, and manage git hooks without manual shell scripting.
25
+
26
+ ## Install
27
+
28
+ ```bash
29
+ pip install git-hook-manager-max
30
+ ```
31
+
32
+ ## Usage
33
+
34
+ ```bash
35
+ ghm list # List all hooks
36
+ ghm create pre-commit # Create a hook from template
37
+ ghm edit pre-commit # Edit a hook
38
+ ghm toggle pre-commit # Enable/disable a hook
39
+ ghm templates # List available templates
40
+ ghm init # Initialize hooks directory
41
+ ```
42
+
43
+ ## Requirements
44
+
45
+ Python 3.11+, stdlib only.
@@ -0,0 +1,34 @@
1
+ # Privacy Policy — git-hook-manager-max
2
+
3
+ **Last updated:** June 20, 2026
4
+
5
+ ## Overview
6
+
7
+ git-hook-manager-max ("we", "our", "the tool") is a command-line utility that helps developers manage Git hooks across projects. It installs, configures, and shares Git hook scripts.
8
+
9
+ ## Data Collection
10
+
11
+ **git-hook-manager-max does NOT collect, store, or transmit any data.**
12
+
13
+ When you use git-hook-manager-max:
14
+
15
+ - **No data is logged or transmitted.** All operations happen locally on your machine. The tool does not send data to any external server.
16
+ - **No network calls.** git-hook-manager-max does not make any network requests. It operates entirely offline.
17
+ - **No telemetry.** There is no usage tracking, analytics, or telemetry of any kind.
18
+ - **No accounts.** There is no signup, login, or user account system.
19
+
20
+ ## How It Works
21
+
22
+ git-hook-manager-max reads and writes Git hook scripts in your project's `.git/hooks` directory (or a shared hooks directory you configure). It may also read from a configuration file (e.g., `.githookrc`) in your project or home directory. All file operations are local — your hook scripts and repository data never leave your machine.
23
+
24
+ ## Open Source
25
+
26
+ git-hook-manager-max is open source under the MIT license. It has zero runtime dependencies — it uses only Python 3.11+ standard library modules.
27
+
28
+ ## Changes to This Policy
29
+
30
+ We may update this privacy policy from time to time. Any changes will be reflected in the project's source code repository.
31
+
32
+ ## Contact
33
+
34
+ If you have questions about this privacy policy, contact us at: [YOUR EMAIL ADDRESS]
@@ -0,0 +1,24 @@
1
+ # git-hook-manager-max
2
+
3
+ A visual Git hook manager CLI. Create, edit, and manage git hooks without manual shell scripting.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install git-hook-manager-max
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ ghm list # List all hooks
15
+ ghm create pre-commit # Create a hook from template
16
+ ghm edit pre-commit # Edit a hook
17
+ ghm toggle pre-commit # Enable/disable a hook
18
+ ghm templates # List available templates
19
+ ghm init # Initialize hooks directory
20
+ ```
21
+
22
+ ## Requirements
23
+
24
+ Python 3.11+, stdlib only.
Binary file
Binary file
Binary file