@radkode/neo
v0.10.3
Published
Modern CLI toolkit with intelligent git workflows and configuration management
Maintainers
Readme
███╗ ██╗███████╗ ██████╗ ██████╗██╗ ██╗
████╗ ██║██╔════╝██╔═══██╗ ██╔════╝██║ ██║
██╔██╗ ██║█████╗ ██║ ██║ ██║ ██║ ██║
██║╚██╗██║██╔══╝ ██║ ██║ ██║ ██║ ██║
██║ ╚████║███████╗╚██████╔╝ ╚██████╗███████╗██║
╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═════╝╚══════╝╚═╝Modern CLI toolkit with intelligent git workflows and configuration management
Intelligent git operations • Configuration management • Self-updating
Features
✨ Smart Git Operations - Enhanced git commands with safety confirmations
⚙️ Configuration Management - Simple key-value configuration storage
🛡️ Branch Protection - Interactive confirmation for main branch pushes
🔄 Self-Updating - Built-in update command with smart package manager detection
🎨 Beautiful UI - Colorful output with progress indicators and banners
📦 Semantic Versioning - Automated releases with changesets
🚀 TypeScript First - Built with full TypeScript support and type safety
Installation
# Install globally
npm install -g @radkode/neo
# or with pnpm
pnpm add -g @radkode/neoQuick Start
# Display help and available commands
neo --help
# Initialize Neo CLI configuration
neo init
# Check for updates
neo update --check-only
# Configure a setting
neo config set editor.default "code"
# Smart git push with main branch protection
neo git push
# View current configuration
neo config listDemo
Smart Git Push Protection
When attempting to push to the main branch, Neo intelligently prompts for confirmation:
$ neo git push
⚡ NEO CLI
Radkode's Lightning-Fast CLI Framework
⚠️ You are about to push directly to the main branch.
This is generally not recommended as it bypasses code review processes.
✔ Are you sure you want to continue? » No
✅ Push cancelled. Here's how to push your changes safely:
1. Create a feature branch: git checkout -b feature/your-feature-name
2. Push to your branch: git push -u origin feature/your-feature-name
3. Create a pull request to merge into main
This protects the main branch from accidental changes.Beautiful Configuration Management
$ neo config set theme.primary "#00ff88"
✨ Configuration saved: theme.primary = "#00ff88"
$ neo config list
📝 Your Configuration:
🎨 theme.primary "#00ff88"
💻 editor.default "code"
🚀 workflow.auto trueCommands
init
Install and configure Neo CLI globally.
neo initOptions:
--force- Force reconfiguration if already initialized--skip-install- Skip global installation (configuration only)
config
Manage configuration values with simple key-value storage.
# Set a configuration value
neo config set api.key "your-api-key"
# Get a configuration value
neo config get api.key
# List all configuration values
neo config listSubcommands:
config get <key>- Get a configuration valueconfig set <key> <value>- Set a configuration valueconfig list- List all configuration values
git
Enhanced git operations with safety features.
git push
Smart git push with main branch protection.
# Regular push (prompts for confirmation on main branch)
neo git push
# Force push (use with caution)
neo git push --force
# Dry run to see what would be pushed
neo git push --dry-run
# Push and set upstream branch
neo git push --set-upstream origin feature-branch
# Push with tags
neo git push --tagsOptions:
-f, --force- Force push (overwrites remote)-u, --set-upstream <branch>- Set upstream branch--dry-run- Show what would be pushed without actually pushing--tags- Push tags along with commits
Safety Features:
- ⚠️ Interactive confirmation when pushing to main branch
- 📝 Helpful guidance for safer alternatives
- ✅ Graceful cancellation (exits with success code)
- 🎯 Encourages best practices while allowing flexibility
update
Update Neo CLI to the latest version from npm.
# Update to the latest version (with confirmation)
neo update
# Check for updates without installing
neo update --check-only
# Force update/reinstall even if on latest version
neo update --forceOptions:
--check-only- Only check for updates without installing--force- Force update even if already on latest version
Features:
- 🔍 Automatic version checking against npm registry
- 📦 Smart package manager detection (npm, pnpm, yarn)
- ✨ Interactive confirmation before updating
- 🎯 Helpful error messages for permission issues
- ⚡ Progress indicators with real-time status
Global Options
-v, --verbose- Enable verbose logging-c, --config <path>- Path to config file--no-color- Disable colored output--no-banner- Hide banner-h, --help- Display help-V, --version- Display version
Development
Setup
git clone https://github.com/radkode/neo.git
cd neo
pnpm installBuild
pnpm run buildTest
pnpm test
pnpm run test:watch
pnpm run test:coverageLocal Development
# Link for local testing
pnpm run link-local
# Test the CLI
neo --help
# Unlink when done
pnpm run unlink-localVersioning & Releases
This project uses Changesets for version management and publishing.
Creating a Changeset
When you make changes that should be released, create a changeset:
# Create a new changeset
pnpm changesetThis will:
- Prompt you to select which packages to version (this project has one)
- Ask for the type of change (patch, minor, major)
- Request a description of the changes
- Generate a changeset file in
.changeset/
Release Workflow
# Check current changeset status
pnpm changeset:status
# Consume changesets and update version
pnpm version-packages
# Publish to npm (after tests pass)
pnpm releaseChange Types
- patch: Bug fixes, small improvements (0.1.0 → 0.1.1)
- minor: New features, enhancements (0.1.0 → 0.2.0)
- major: Breaking changes (0.1.0 → 1.0.0)
CI Integration
The changeset workflow integrates with:
- GitHub releases and changelogs
- Automated version bumping
- NPM publishing pipeline
License
MIT © Jacek Radko
Built with ⚡ by Radkode
