A touch-like CLI that automatically adds copyright comments at the start of each file created, with powerful configuration management.
- 🎨 Customizable Templates - Use template variables and loops for dynamic headers
- 📦 Git Integration - Automatically uses repository-level configs
- 🌍 Global & Local Configs - Project-specific or personal defaults
- 👥 Team Management - Track multiple authors and contributors
- ⚙️ CLI Configuration - Manage all settings from the command line
- 🔧 Flexible - Support for 15+ programming languages out of the box
# Initialize configuration in your git repo
ctouch init
# Configure your details
ctouch config add-field "name" "Your Name" --section owner
ctouch config add-field "license" "MIT"
# Create files with copyright headers
ctouch src/main.rs src/lib.rsctouch <paths>- Create files with copyright headersctouch init [--global]- Initialize configuration file
ctouch config show- Display current configurationctouch config add-field <key> <value>- Add configuration fieldctouch config remove-field <key>- Remove configuration fieldctouch config list-fields- List all fields in a sectionctouch config add-author <username>- Add team memberctouch config remove-author <index>- Remove team memberctouch config list-authors- List all authorsctouch config set-template <content>- Update template
For complete documentation, see:
- 📖 COMMANDS.md - Full command reference with examples
- ⚡ QUICK_REFERENCE.md - Quick lookup guide
- 📝 IMPLEMENTATION_SUMMARY.md - Technical details
# Build the plugin
cargo build --release
# Register with Nushell
register target/release/chipa-touch.exeConfigurations are stored as TOML files:
- Local:
<git-root>/ctouch.toml - Global:
~/.config/nushell/ctouch/config.toml
[config]
template = """
Copyright (c) {current_year} {owner.name}
License: {license}
Team: {{ for author in authors }}@{author.username}{{ endfor }}
"""
[config.owner]
username = "yourusername"
name = "Your Name"
[[authors]]
username = "teammate"
name = "Team Mate"
role = "Developer"
[variables]
license = "MIT"
project = "awesome-project"Available in templates:
{owner.username},{owner.name}- Owner information{current_year},{current_date}- Date/time values{ctouch_version}- Tool version- Custom variables from
[variables]section {authors}- Array of team members
- COMMANDS.md - Complete command reference
- QUICK_REFERENCE.md - Quick command lookup
- TEMPLATE_USAGE.md - Template syntax guide
- API_REFERENCE.md - API documentation
- IMPLEMENTATION_SUMMARY.md - Implementation details
See LICENSE file for details.