DTL Software — 8 June 2026
Simplified menu for Git project management
GitDTL is a Python/Tkinter desktop application that exposes the essential Git operations through a numbered menu. It can be used on any local repository, even one that does not yet exist — in that case the tool will offer to create it.
The interface adopts the “DEC VT100 Terminal” aesthetic of the NetDTL suite: black background, phosphor-green text, Courier New monospace font.
GitDTL is aimed at users who want to work with Git without touching the command line.
tkinter, subprocess, pathlib, shutil)PATHgit clone https://github.com/DidierMorandi/gitdtl.git cd gitdtl python GitDTL.py
python GitDTL.py
GitDTL opens on the current folder. The project folder can be changed at any time using the Change project button.
| No. | Action | Equivalent Git command |
|---|---|---|
| 1 | Project status | git status |
| 2 | View changes | git diff |
| 3 | Add a file to the project | git add |
| 4 | Stage a modified file | git add |
| 5 | Remove a file or folder | git rm |
| 6 | Commit changes | git commit |
| 7 | Publish project to GitHub | git push |
| 8 | Create a release | git tag + git push |
| 9 | Release history | git log |
| 10 | Sync from GitHub | git pull |
| 11 | GitDTL diagnostics | git status + branch + remote + last commit |
| 12 | Read the log | Displays logs/gitdtl.log |
| 13 | View project on GitHub | Opens the configured GitHub page |
| 14 | Documentation | Displays this README in Markdown |
If the current folder does not yet contain a Git repository, GitDTL offers to initialise one (git init) before executing any operation.
If no origin remote is configured at publish time, GitDTL asks for the GitHub repository URL and registers it automatically.
On the first git push to a new branch, GitDTL detects the missing upstream and automatically runs git push --set-upstream origin <branch>.
Two options are offered: remove the file from disk and from Git tracking, or remove it from tracking only by adding it to .gitignore.
If modified files have not yet been included in a commit, GitDTL lists them and asks for confirmation before running git push.
The “Create a release” function chains automatically: version commit, annotated tag creation (vX.Y.Z), commit push, tag push.
Every Git action and every error is recorded in logs/gitdtl.log with a timestamp. The log can be viewed, cleared, or exported from the interface.
Each dialog box exposes a ? for Help button that displays an explanation of the current operation. Help texts can be customised via an aide.md file placed in the same folder as the script.
Git messages not anticipated by the interface can be enriched with advice from rules placed in expert_git.md.
On first launch, GitDTL displays a welcome screen whose text comes from the welcome section of aide.md. A local cookie .gitdtl_welcome_seen prevents the screen from being shown again.
Create or edit an aide.md file in the GitDTL directory with sections named by key:
## commit_message Briefly describe the change made. Example: Fix HTML header calculation. ## release_version Enter the version number in X.Y.Z format. The v prefix will be added automatically.
Available keys:
Create or edit an expert_git.md file in the GitDTL directory. Each rule contains Git message fragments to match and advice to display:
## Branch without upstream Patterns: - has no upstream branch - --set-upstream Advice: The local branch is not yet linked to its GitHub branch. GitDTL can fix this with git push --set-upstream origin <branch>.
gitdtl/ ├── GitDTL.py Main script ├── aide.md Custom help texts (optional) ├── expert_git.md Expert system rules (optional) └── logs/ └── gitdtl.log Application log (created automatically)
MIT — see the LICENSE file.
In Memoriam Jean-Claude BELLAMY (1937–2015)