Package Exports
- @nyron/cli/actions/bump
- @nyron/cli/actions/init
- @nyron/cli/actions/tag
- @nyron/cli/actions/types
- @nyron/cli/config
- @nyron/cli/config/define
- @nyron/cli/config/loader
- @nyron/cli/config/parser
- @nyron/cli/config/types
- @nyron/cli/config/validator
- @nyron/cli/core/tag-parser
- @nyron/cli/core/types
- @nyron/cli/github/commits
- @nyron/cli/github/pull-requests
- @nyron/cli/github/repo-parser
- @nyron/cli/github/tags
- @nyron/cli/github/types
- @nyron/cli/package.json
Readme
Nyron
The easiest way to start versioning.
Current versioning tools are slow, ritualistic, and break your flow. Nyron automates changelogs, tagging, and releases—powered by your commits, not ceremony. Stay focused on building; Nyron handles the order.
Why Nyron?
Stop wrestling with manual changelog updates, version bumps, and tag management. If you're writing conventional commits (and you should be), Nyron extracts exactly what you did and organizes it for you:
- ✅ Automatic changelog generation from your commit history
- ✅ Smart commit grouping (Features, Bug Fixes, Chores, etc.)
- ✅ Multi-package support for monorepos
- ✅ GitHub integration for author attribution and commit links
- ✅ Zero configuration overhead to get started
Nyron currently depends on GitHub as the source of truth for your repository metadata and commit information.
Quickstart
1. Install
bun add -D @nyron/cli
# or
npm install -D @nyron/cli2. Initialize
npx @nyron/cli initThis creates a nyron.config.ts file in your project root:
import { defineConfig } from "@nyron/cli/config"
export default defineConfig({
repo: "owner/repo", // Your GitHub repo
projects: {
sdk: {
tagPrefix: "@my-package/sdk@",
path: "packages/sdk",
},
service: {
tagPrefix: "@my-package/service@",
path: "apps/service",
},
},
autoChangelog: true,
onPushReminder: true,
})Edit this file to match your project structure. For a single-package repo:
import { defineConfig } from "@nyron/cli/config"
export default defineConfig({
repo: "your-org/your-repo",
projects: {
main: {
tagPrefix: "v",
path: ".",
},
},
autoChangelog: true,
onPushReminder: true,
})3. Setup GitHub Token (Optional but Recommended)
For enriched changelogs with author links and commit URLs, set a GitHub token:
# Create .env in your project root
echo "GITHUB_TOKEN=your_github_token_here" > .envGenerate a token at GitHub Settings → Developer settings → Personal access tokens
4. Start Using Nyron
# See what commits you have since the last release
npx @nyron/cli diff
# Bump version and auto-generate changelog
npx @nyron/cli bump --type minor --prefix v
# Create and push a git tag
npx @nyron/cli tag --prefix v --version 1.2.0How It Works
Nyron reads your Git history and parses conventional commits to generate structured changelogs automatically.
Conventional Commits Format
<type>(<scope>): <message>
Examples:
feat(auth): add OAuth2 login
fix(api): resolve memory leak in endpoint
docs: update installation guideCommit Types Supported
Nyron recognizes and groups commits by type:
| Type | Group | Description |
|---|---|---|
feat |
Features | New features |
fix |
Bug Fixes | Bug fixes |
docs |
Chores | Documentation changes |
refactor |
Chores | Code refactoring |
perf |
Chores | Performance improvements |
test |
Chores | Test additions/changes |
chore |
Chores | Maintenance tasks |
style |
Chores | Code style changes |
What Nyron Does
- Fetches commits since your last tagged release
- Filters out meta commits (version bumps, changelog updates)
- Parses conventional commit syntax to extract type, scope, and message
- Groups commits into Features, Bug Fixes, and Chores
- Enriches with GitHub data (author usernames, avatars, commit URLs)
- Generates markdown formatted for changelogs
Example Output:
## Features
- **auth**: add OAuth2 login ([@username](https://github.com/username)) [[a1b2c3d](https://github.com/owner/repo/commit/a1b2c3d)]
## Bug Fixes
- **api**: resolve memory leak in endpoint ([@username](https://github.com/username)) [[e4f5g6h](https://github.com/owner/repo/commit/e4f5g6h)]Commands
nyron init
Initialize Nyron configuration in your project.
npx @nyron/cli initOptions:
--force- Overwrite existing config--json- Generate JSON config instead of TypeScript (coming soon)
nyron diff
Show commits since the last release for all or specific projects.
npx @nyron/cli diff
npx @nyron/cli diff --prefix @my-pkg/sdk@Options:
-f, --prefix <prefix>- Filter by tag prefix
Use this to preview what will go into your next changelog.
nyron bump
Bump project version and generate changelog automatically.
npx @nyron/cli bump --type minor --prefix vOptions:
-t, --type <type>- Required. Bump type:major,minor,patch-x, --prefix <prefix>- Required. Tag prefix from your config (e.g.,v,@pkg/name@)
What it does:
- Fetches commits since last tag
- Generates changelog based on commits
- Updates
package.jsonversion - Optionally prompts to create a git tag
nyron tag
Create and push a new version tag.
npx @nyron/cli tag --prefix v --version 1.2.0Options:
-p, --prefix <prefix>- Required. Tag prefix (e.g.,v,@my-pkg/sdk@)-v, --version <version>- Required. Semantic version (e.g.,1.0.0)
Configuration
The nyron.config.ts file defines your versioning strategy:
import { defineConfig } from "@nyron/cli/config"
export default defineConfig({
// GitHub repository (owner/repo)
repo: "your-org/your-repo",
// Projects to version (supports monorepos)
projects: {
// Key is the project name
backend: {
tagPrefix: "@my-app/backend@", // Git tag format
path: "apps/backend", // Path to project
},
frontend: {
tagPrefix: "@my-app/frontend@",
path: "apps/frontend",
},
},
// Automatically generate changelog on bump (default: true)
autoChangelog: true,
// Remind to push tags after creating them (default: true)
onPushReminder: true,
})Workflow
Here's a typical versioning workflow with Nyron:
# 1. Check what's changed
npx @nyron/cli diff --prefix v
# 2. Bump version and generate changelog
npx @nyron/cli bump --type minor --prefix v
# 3. Commit the changes
git add .
git commit -m "chore: bump version to 1.2.0"
# 4. Create and push the tag
npx @nyron/cli tag --prefix v --version 1.2.0
git push && git push --tagsPro tip: Nyron's bump command can remind you to push tags automatically if onPushReminder: true in your config.
FAQ
Do I need to use conventional commits?
Yes. Nyron parses commit messages to generate changelogs. If your commits don't follow the type(scope): message format, they'll be grouped under "Other".
Can I use this without GitHub?
Not yet. Nyron currently depends on GitHub for repository metadata and enriched commit information (author links, avatars, commit URLs). Support for other platforms is planned.
Does it work with monorepos?
Absolutely. Define multiple projects in your config with different tagPrefix values, and Nyron will track each independently.
What if I don't have a GitHub token?
Nyron will still work, but changelogs won't include GitHub usernames, avatars, or commit URLs—just the git author name.
License
ISC
Built with ⚡ by @erebus-sh
Stay focused on building. Nyron handles the order.