An optimized Python editor for low-configuration laptops/PCs.
- Tabs - Open MULTIPLE files in one window.
- Dark mode - Protect your eyes during LONG coding sessions.
- Automatic indentation - AUTOMATICALLY indent after
:(no more typing 4 spaces manually). - Bracket matching - AUTOMATICALLY close opening brackets
(),[],{},<>,"",''. - Smart bracket deletion - Delete MATCHING BRACKET PAIRS intelligently.
- Tear-off tabs - DRAG a tab out to create a new window with that file.
- Auto-scroll - MIDDLE-CLICK to create an ANCHOR AND SCROLL automatically.
- Toggle comment -
Ctrl + /to COMMENT/UNCOMMENT selected lines. - Line numbers - Easily locate your code by LINE NUMBER.
- Find / Replace / Go To - Full SEARCH, REPLACE, and NAVIGATION support.
- Auto-saving settings - Remembers your THEME (dark/light) and WINDOW SIZE.
- "Open with coding-pudding" - RIGHT-CLICK any file to open it directly.
- Word counting - Press
Ctrl + Shift + Wto open theWORD COUNTdialog. - Horizontal scrolling - Press
Shift + Scrollto do HORIZONTAL SCROLL. - Settings dialog - Press
Ctrl + ,to CONFIGURE font, font size, theme, and editor behavior. - Remember opened tabs - The editor REMEMBERS tabs from the last coding session.
- Tab context menu - Right-click a tab to open a CONTEXT MENU.
- Close all tabs - Press
Ctrl + Alt + Wto CLOSE ALL tabs (with unsaved-changes warning). - Indentation size setting - Change indentation SIZE in the
Settingsdialog. - Bookmarks - MARK important parts of your project.
- Open Recent files -
File-->Open Recentto show the TEN most recently opened files. - Desktop notifications - TOAST NOTIFICATIONS appear at the bottom-right of the screen with the app icon and name. Falls back to IN-APP toast when meeting errors.
- Tab elide - Long file names are elided in the middle; no TAB STRETCHING. Hover to see the full path.
- Convert indentation - Convert leading whitespace between TABS and SPACES with
Format-->Convert Indentation. - Auto save - Automatically save MODIFIED files at a configurable interval (default: 15 seconds). Also saves when switching tabs or losing window focus. Enable in
Settings-->Auto Save. - Pin/Unpin favorite recent files - PIN/UNPIN important files to the top of the
Open Recentmenu. - Current line highlight - The line containing the cursor is HIGHLIGHTED with a subtle background color.
- Middle-click close tab - MIDDLE-CLICK on any tab to close it. Press and release on the same tab to close; press on one tab and release on another to cancel.
- Download
coding-pudding.exefrom Releases. - Run the file (no Python installation required).
- Right-click any file --> "Open with coding-pudding".
# Clone repository
git clone https://github.com/caoductri698/coding-pudding.git
cd coding-pudding
# Install dependencies
py -m pip install PyQt6
# Run app
py coding-pudding.py# Clone repository
git clone https://github.com/caoductri698/coding-pudding.git
# Install PyInstaller
py -m pip install pyinstaller
# Build
py -m PyInstaller --onefile --windowed --icon=icon.ico --add-data="icon.ico;." --name coding-pudding coding-pudding.py
# File .exe is ready in dist/coding-pudding.exe- Operating System: Windows 7/8/10/11
- RAM: at least 2GB (for best performance)
- Python version (if running from source code): 3.8+ (tested on 3.14)
| Shortcut | Action |
|---|---|
Ctrl + N |
New file |
Ctrl + T |
New tab |
Ctrl + O |
Open file |
Ctrl + S |
Save |
Ctrl + Shift + S |
Save as |
Ctrl + W |
Close tab |
Ctrl + Q |
Exit |
Ctrl + Z |
Undo |
Ctrl + Y |
Redo |
Ctrl + F |
Find |
Ctrl + H |
Replace |
Ctrl + G |
Go To |
Ctrl + / |
Toggle comment |
Ctrl + Tab |
Next tab |
Ctrl + Shift + Tab |
Previous tab |
F5 or Fn + F5 |
Time/Date |
Tab |
1 indentation (line start)/4 spaces |
Shift + Tab |
Unindent |
Ctrl + Shift + W |
Word count |
Shift + Scroll |
Horizontal scrolling |
Ctrl + , |
Settings dialog |
Ctrl + Alt + W |
Close all tabs |
Ctrl + Scroll |
Zoom in or out |
Ctrl + F2 or Ctrl + Fn + F2 |
Toggle bookmark at current line |
F2 or Fn + F2 |
Jump to the next bookmark |
Shift + F2 or Shift + Fn + F2 |
Jump to the previous bookmark |
Ctrl + Shift + B |
Open Bookmarks dialog |
- Option 1:
Ctrl + O--> Choose file - Option 2: Right-click file --> "Open with coding-pudding"
- Option 3: Drag file into the app window
- Click and hold a tab
- Drag it outside the tab bar --> A new window appears with that file
- Middle-click anywhere in the editor --> An anchor appears
- Move mouse up/down --> The page scrolls automatically
- The further from the anchor, the faster it scrolls
- Middle-click again to disable the anchor
- Automatically: Run the app once --> it registers automatically
- Manually: Help --> Register 'Open with' Menu
- Removing: Help --> Unregister 'Open with' Menu
This editor supports two style of indentation:
- Spaces (default: FOUR spaces) - recommended by
PEP 8 - Tabs (
\t) - smaller file size, width is configurable
To convert indentation:
- Open a file (
Ctrl + O) - Go to
Format-->Convert Indentation - Choose
ONEstyle:
- Tabs to Spaces - replace all leading tabs to spaces
- Spaces to Tabs - replace all leading spaces to tabs
The conversion only affects leading whitespace (indentation), not spaces/tabs IN THE MIDDLE of a line.
Example:
Before (tabs): After (tabs --> spaces):
def hello(): def hello():
\tprint("hi") print("hi")
\tif True: if True:
\t\tpass passNotes:
- If there is NO leading tabs or NO leading spaces, a status message will appear - no changes is made.
- Indentation size (2/4/8 spaces or tab character) can be configured in
Settingsdialog (Ctrl + ,) -->Indentation size. - Changes mark the file as MODIFIED.
- The MODIFIED file is automatically saved after N seconds - interval between auto saves (5 --> 600 seconds, default: 15 seconds).
- The file will be automatically saved when switching tabs/losing focus.
Only files with their path are able to use this feature. Unsaved new files (
Untitled) are skipped. Every time you type, a 2-secs debouncer is reset. Auto save fires 2 seconds after you stop modifying you file.
You can PIN/UNPIN you favorite files by doing these steps:
- Open a file (
Ctrl + O) - RIGHT-CLICK on the tab --> Pin to Recent
- The file is now appeared in a PINNED section at the top of
File-->Open Recent - To UNPIN, you can RIGHT-CLICK on the tab -->
Unpin from Recent
Pinned files will not be duplicated in the Recent list
- MIDDLE-CLICK on a tab --> close the tab.
- MIDDLE-CLICK on the
Xbutton --> closes the tab. - MIDDLE-CLICK + drag to another tab --> no tab is closed.
The app shows TOAST NOTIFICATION at the bottom-right of the screen for events, such as:
- Saving files
- Reloading files
- Converting indentation (tabs <--> spaces)
- Auto-saving
- Pinning / unpinning recent files
- Copying file path / file name
On Windows 10/11, the system automatically converts the balloon tip into a modern toast notification.
App identity registration (for the correct app name + icon on the toast):
- Register: Help --> Register App Identity (Toast).
- Unregister: Help --> Unregister App Identity.
If notifications NO LONGER appear after running coding-pudding multiple times:
- Open Task Manager -
taskmgr(Ctrl + Shift + Esc). - Find Windows Explorer.
- Right-click -->
Restart.
This clears stale tray icon state left behind by crashed sessions.
This only happens when running from source code (python.exe). The official coding-pudding.exe from Releases will fix this problem.
- Python 3.14 - Programming language
- PyQt6 - GUI framework
- PyInstaller - Packaging tool
- winreg - Windows Registry integration
Contributions are welcome!
- Fork the repository
- Create a new branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request (PR)
If you find a bug, please create an Issue with:
- Description of the bug
- Steps to reproduce
- Screenshots (if possible)
- Windows version
- GitHub: @caoductri698
- Gmail: caoductri698@gmail.com
- TikTok: tdwc208
- Instagram: tdwc208
- Hotline: +84342513045
- Facebook: tri6462 (Trii Dwck)
This project is licensed under the GPL v3.0 License
You are free to:
- Use commercially
- Modify
- Distribute
- Use privately
Under the following conditions:
- Source code MUST be provided with any distribution
- Derivatives must also be licensed under GPL v3.0
- Original copyright notice must be preserved
For more details, see the LICENSE file or visit gnu.org/licenses/gpl-3.0.