- 🤖 LLM usage: $1.0434 (7 commits)
- 👤 Human dev: ~$723 (7.2h @ $100/h, 30min dedup)
Generated on 2026-08-11 using openrouter/qwen/qwen3-coder-next
Git Clone utility - Clone repositories to organized directory structure.
The glon package provides a convenient CLI tool for cloning git repositories to an organized directory structure, as well as listing and managing your cloned projects.
- Easy Cloning: Clone git repositories with a single command
- Clipboard Integration: Clone directly from clipboard URLs
- Smart Opening: Open projects with clipboard auto-detection and auto-cloning
- Grab from Clipboard: Grab paths from clipboard (git URLs or local paths)
- List Projects: List all cloned projects with time-based filtering
- Open in IDE: Open projects directly in PyCharm, VSCode, and other IDEs
- Organized Structure: Projects organized by owner/repo structure
pip install glongit clone https://github.com/tom-sapletta/glon.git
cd glon
pip install -e ".[dev]"# Clone using git URL
glon https://github.com/owner/repo.git
# Or clone from clipboard (copies URL to clipboard first)
glon# Smart open - checks clipboard first, auto-clones if needed
glon open
# Copy a git URL to clipboard, then:
glon open # Auto-detects and opens the projectThe grab command reads a path from clipboard and processes it:
# Grab from clipboard - detects if it's a git URL or local path
glon grab
# With options
glon grab --base-path ~/projects
glon grab --dry-run
glon grab --verboseList all cloned projects in your base directory:
# List all projects
glon list
glon ls
# Filter by time
glon list "last week"
glon list "last month"
glon list "last year"
glon list 30 # last 30 days
# Verbose output with full paths
glon list --verbose
glon ls -vClone a git repository to the organized directory structure (default: ~/github):
glon <git-url> # Clone from URL
glon clone <git-url> # Same as above (explicit)
glon --dry-run <url> # Show what would be done
glon --base-path ~/my-projects <url> # Custom base pathGrab a path from clipboard:
glon grab # Read from clipboard and process
glon grab --verbose # Show detailed output
glon grab --dry-run # Preview without executing
glon grab --base-path ~/my-projects # Custom output pathList all cloned projects:
glon list # List all projects
glon ls # Short alias
glon list "last week" # Projects modified last week
glon list "last month" # Projects modified last month
glon list "last year" # Projects modified last year
glon list 30 # Projects modified last 30 days
glon list --verbose # Show full paths and details
glon ls -v # Verbose output
glon list --base-path ~/my-projects # Custom base pathOpen a project in your IDE (PyCharm, VSCode, etc.):
# Open with clipboard priority - checks clipboard first for git URLs
glon open # Auto-detect from clipboard, or show project list
# Open specific project
glon open owner/repo # Open in PyCharm (default)
glon open owner/repo --ide vscode # Open in VS Code
glon open /full/path/to/project # Open with full path
glon open ~/github/owner/repo # Open with expanded path
# Open with different IDE
glon open --ide vscode # Open clipboard-detected project in VS Code
glon open --ide idea # Open in IntelliJ IDEA
glon open --ide webstorm # Open in WebStorm
glon open --ide goland # Open in GoLand
glon open --ide rider # Open in RiderClipboard-Prioritized Opening: When glon open is called without arguments, it:
- First checks clipboard for git URLs (SSH or HTTPS format)
- If a git URL is found and the project exists locally, opens it immediately
- If the project doesn't exist, clones it first then opens it
- If no valid git URL is found, shows the available projects list
Main class for garbage collection control and monitoring.
enable()- Enable garbage collectiondisable()- Disable garbage collectioncollect(generation=2)- Force garbage collectionget_stats()- Get garbage collection statisticsget_memory_summary()- Get comprehensive memory summary
Class for memory profiling and object tracking.
take_snapshot(label="")- Take a memory snapshottrack_object(obj, label="")- Track an object with weak referencecompare_snapshots(index1, index2)- Compare two memory snapshotsget_tracked_objects()- Get information about tracked objects
cleanup_temp_files(pattern="*")- Clean up temporary filesmonitor_memory_usage(duration=60, interval=1.0)- Monitor memory usageforce_garbage_collection(verbose=False)- Force garbage collection on all generationsfind_object_cycles(obj, max_depth=10)- Find reference cyclesanalyze_memory_usage()- Comprehensive memory analysis
- Python 3.8+
- psutil>=5.8.0
pytestblack glon/mypy glon/Apache License 2.0 - see LICENSE for details.
Contributions are welcome! Please read the CONTRIBUTING.md file for details on our code of conduct and the process for submitting pull requests.
- Initial release
- Basic garbage collection control
- Memory profiling capabilities
- Utility functions for memory management
Licensed under Apache-2.0.
Tom Sapletta