Skip to content

A Windows utility to fully manage the "New" context submenu. Easily add, edit, or remove entries to customize your workflow and remove clutter.

License

Notifications You must be signed in to change notification settings

KerberosInteractive/KINEM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

KINEM

Kerberos Interactive New Entry Manager

A Windows application for managing Windows Explorer "New" context menu entries. Easily add, edit, and remove custom file types from the right-click "New" menu.

Features

  • Easy Management: Add, edit, and delete custom file type entries in the Windows "New" context menu
  • Template Support: Create new files with pre-populated template content
  • Custom Icons: Assign custom icons to your file types
  • Modern UI: Clean, responsive interface with dark/light/system theme support
  • Secure: Input validation, sanitization, and comprehensive logging
  • Portable Config: All settings stored in user's AppData for easy backup

Requirements

  • Windows 10/11
  • Administrator privileges (for registry modifications)

Installation

  1. Download KINEM.exe from the releases page
  2. Run the executable
  3. Grant administrator privileges when prompted (required for registry access)

Usage

Adding a New Entry

  1. Click "Add New Entry"
  2. Enter the file extension (e.g., .md or md)
  3. Enter a display name (e.g., "Markdown File")
  4. (Optional) Enter an icon path (e.g., C:\Path\To\Icon.ico)
  5. (Optional) Add template content for new files

Editing an Entry

  1. Click the "Edit" button next to the entry
  2. Modify the desired fields
  3. Confirm the changes

Deleting an Entry

  1. Click the "Delete" button next to the entry
  2. Confirm the deletion

Theme Toggle

Click the theme button in the top-right corner to cycle between:

  • β˜€οΈ Light mode
  • πŸŒ™ Dark mode
  • πŸ’» System (follows OS preference)

Technical Details

Architecture

  • Frontend: Vanilla JavaScript with Tailwind CSS
  • Backend: Go (Windows registry operations, config management)
  • Framework: Wails v2 (Go + WebView2)

Data Storage

  • Config Location: %APPDATA%\KINEM\config.json
  • Templates: %APPDATA%\KINEM\templates\
  • Logs: %APPDATA%\KINEM\logs\

Registry Structure

KINEM creates the following registry structure for each entry:

HKEY_CLASSES_ROOT
β”œβ”€β”€ .<extension>
β”‚   β”œβ”€β”€ (Default) = "<progid>file"
β”‚   └── ShellNew
β”‚       β”œβ”€β”€ NullFile = "" (for empty files)
β”‚       └── FileName = "<template_path>" (for templated files)
└── <progid>file
    β”œβ”€β”€ (Default) = "<display_name>"
    └── DefaultIcon (optional)
        └── (Default) = "<icon_path>"

Security Features

  • Input Validation: All user input is validated against strict patterns
  • Path Traversal Protection: Icon and template paths are validated to prevent directory traversal attacks
  • Registry Sanitization: Dangerous characters are filtered from registry writes
  • Error Logging: Comprehensive logging with context for debugging
  • Duplicate Detection: Prevents conflicts from duplicate extensions

Development

Prerequisites

  • Go 1.21+
  • Node.js 16+
  • Wails CLI v2.10+

Building from Source

# Install dependencies
go mod download
cd frontend && npm install

# Development mode (hot reload)
wails dev

# Production build
wails build

Running Tests

# Backend tests
cd backend
go test -v -cover

# All tests
go test ./... -v -cover

Current test coverage: 30.5% (target: 80%)

Project Structure

KINEM/
β”œβ”€β”€ backend/           # Go backend code
β”‚   β”œβ”€β”€ app.go        # Main app logic (CRUD operations)
β”‚   β”œβ”€β”€ config.go     # Configuration management
β”‚   β”œβ”€β”€ registry.go   # Windows registry operations
β”‚   β”œβ”€β”€ validation.go # Input validation & sanitization
β”‚   β”œβ”€β”€ logger.go     # Logging system
β”‚   β”œβ”€β”€ types.go      # Data structures
β”‚   └── *_test.go     # Unit tests
β”œβ”€β”€ frontend/         # Frontend code
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ main.js   # Main application logic
β”‚   β”‚   └── styles.css# Tailwind CSS
β”‚   β”œβ”€β”€ index.html    # HTML structure
β”‚   └── package.json  # Dependencies
β”œβ”€β”€ main.go           # Wails entry point
β”œβ”€β”€ wails.json        # Wails configuration
└── README.md         # This file

Troubleshooting

"Admin privileges required" error

KINEM requires administrator privileges to modify the Windows registry. Right-click the executable and select "Run as administrator".

Entry doesn't appear in Explorer

Try refreshing Explorer:

  1. Press Win + R
  2. Type taskkill /f /im explorer.exe && start explorer.exe
  3. Press Enter

Icon doesn't display

Ensure the icon path points to a valid .ico file. Icon paths must be absolute Windows paths:

  • Valid: C:\Windows\System32\shell32.dll,0
  • Invalid: ./icon.ico (relative path)

License

Copyright Β© 2025 Kerberos Interactive

Contributing

Contributions are welcome! Please ensure:

  • All tests pass (go test ./... -v)
  • Code follows Go and JavaScript best practices
  • Commit messages use Conventional Commits format

Credits

Built with:


Note: Always backup your registry before making modifications. KINEM tracks all changes it makes and can safely remove them, but it's good practice to maintain backups.

About

A Windows utility to fully manage the "New" context submenu. Easily add, edit, or remove entries to customize your workflow and remove clutter.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published