Releases: Kidkender/archgen
v1.0.7 — Claude Code & Cursor Agent Addons
What's New
New Flags
--claude-code— injectsCLAUDE.md+.claude/skills/into the generated project so Claude Code agent has full project context and pre-configured skills ready to use--cursor— injects.cursor/skills/(Cursorskill.mdformat) with the same skill set for Cursor agent- Both flags can be combined:
archgen create my-app --claude-code --cursor - Interactive multiselect prompt when neither flag is passed
Skills bundled per agent
Node.js: backend-patterns, api-design, database-migrations, docker-patterns, security-review, tdd-workflow, deployment-patterns
Python: python-patterns, python-testing, backend-patterns, postgres-patterns, database-migrations, docker-patterns, security-review
Also works with archgen add
archgen add claude-code
archgen add cursorBug Fixes
- Integration snapshot tests: fixed
mockFs.existsmock so addon conditions evaluate correctly in test environment
What's Changed
- feat: release v1.0.7 — Claude Code & Cursor agent addons by @Kidkender in #3
Full Changelog: v1.0.6...v1.0.7
v1.0.6 — Bug fixes for WebSocket, OAuth2, and archgen add
What's New
Bug Fixes
- WebSocket: Socket.io now uses
transports: ['websocket']to avoid Fastify HTTP router conflict (polling was returning 404) - OAuth2: Updated
generateAuthorizationUrito@fastify/oauth2v8 API — now passes(request, reply)instead of({ state }) - OAuth2: Added
@fastify/cookiedependency required by@fastify/oauth2v8 for state cookie management - OAuth2: Added
src/app.tsoverlay — cookie, googleOAuth2, githubOAuth2, and oauthRoutes are auto-registered; no manual integration needed archgen add: Fixed dep merge —archgen add websocket/oauth/api-docsnow correctly updatespackage.jsonwith addon dependencies
Docs
- Updated README with new addon flags (
--websocket,--oauth,--api-docs) - Updated CHANGELOG
- Added CONTRIBUTORS.md with contribution guide and conventions
v1.0.4
What's New in v1.0.4
Architecture
BasePluginabstract class — sharedgenerate()andapplyAddon()logic extracted from both plugins. Adding a new language now only requires implementing variables, template path, and addon entries — zero boilerplate.ArchGenErrortyped errors —ArchGen.create()andArchGen.addAddon()now throwArchGenErrorwith a.codefield instead of callingprocess.exit(). Safe to use as a library.
import { ArchGen, ArchGenError } from "@kidkender/archgen";
try {
await archgen.create("my-app", options);
} catch (e) {
if (e instanceof ArchGenError) console.error(e.code, e.message);
}New Flags
| Flag | Description |
|---|---|
--output <dir> |
Generate project in a custom directory |
--quiet |
Suppress all output except errors |
--verbose |
Show debug-level output |
--husky |
Add Husky + lint-staged to Node.js projects |
archgen create my-app --output /tmp/projects --quiet
archgen create my-app --language node --huskyNew Commands
# Shell completion
archgen completion bash >> ~/.bashrc
archgen completion zsh >> ~/.zshrc
archgen completion fish >> ~/.config/fish/completions/archgen.fishNew Addons
- Husky + lint-staged (
--husky) for Node.js — generates.husky/pre-commitandlint-staged.config.mjs - Python SQLite (
--language python --database sqlite) —aiosqlitedriver, auto-configureddatabase.pyandconfig.py
archgen create my-api --language node --husky
archgen create my-service --language python --database sqliteDry-run improvements
archgen add --dry-run now shows colored output:
- 🟢
[new]— file will be created - 🟡
[overwrite]— file already exists and will be replaced
Meta file
Every generated project now includes .archgen-meta.json:
{
"version": "1.0.4",
"language": "node",
"addons": ["docker", "testing"],
"database": "postgresql",
"generatedAt": "2026-04-01T00:00:00.000Z",
"projectName": "my-app"
}Tests
- Added
tests/unit/node-plugin.test.tsandtests/unit/python-plugin.test.ts(26 new tests) - Added
tests/integration/snapshot.test.tsfor template regression detection - Total: 78 tests across 8 suites
Full Changelog: https://github.com/Kidkender/archgen/blob/main/CHANGELOG.md
v1.0.3 — CLI Polish & Docker Fixes
What's New
New Commands
archgen add <addon>— injectdocker,testing, orciinto an existing project without regeneratingarchgen info <language>— display full stack details (runtime, ORM, cache, auth, validation...)archgen doctor— check that required tools are installed (Node, npm, git, Docker, Python)
New Flags
--ci— include GitHub Actions CI workflow at creation time--skip-git— skip automaticgit init--all— shorthand for--docker --testing --ci--databasevalidation — error immediately on invalid values
Template Improvements
- GitHub Actions CI workflow for both Node.js and Python
- ESLint v9 flat config (
eslint.config.mjs) replacing deprecated.eslintrc.json .editorconfigin both generated templatespostinstall: prisma generate— Prisma client auto-generated afternpm install
Bug Fixes
- Docker:
JWT_SECRETmissing fromdocker-compose.yml(caused crash ondocker-compose up) - Docker: no
restart: on-failureon app service - Docker:
npm ci→npm install(new projects have nopackage-lock.json) - Database prompt now hidden when user selects Python
archgen v1.0.2 — Production-Ready Scaffolding
Fixed
- Exclude
node_modules,.git,__pycache__,venvwhen copying templates to dist - Binary files in templates now copied verbatim instead of being read as UTF-8
- Removed duplicate
validateProjectName()— validation now handled solely bygetNameError() - Swagger title placeholder
{PROJECT_NAME}→{{PROJECT_NAME}} - CLI version now read dynamically from
package.json(was hardcoded0.1.0) Object.keys(registry)→registry.list()in unsupported language error message- Python testing addon files now actually copied (was logging but not writing files)
- Rollback: partially created project directory is removed on generation failure
- Docker and testing addons now processed through template engine (placeholder replacement)
- Filename placeholders (
{{PROJECT_NAME}}in path components) now replaced correctly dotenvadded to Node template dependencies- Node template database stack unified to MySQL/MariaDB (removed PostgreSQL mismatch)
DATABASE_URLvalidation changed fromz.string().url()toz.string().min(1)for mysql:// compatibility- Prompt cancel handling hardened — exits cleanly if answers are incomplete
- Python
__all__in middleware uses string literals instead of class references - Path traversal explicitly prevented in project name handling
Added
- Database choice for Node.js: MySQL/MariaDB (default) or PostgreSQL via
--databaseflag or interactive prompt - PostgreSQL template overlay:
@prisma/adapter-pg,PrismaPgadapter,schema.prisma,.env.example,package.json - Separate
docker-pgaddon withpostgres:15-alpinedocker-compose for PostgreSQL users - Expanded Node template
.gitignore(dist, logs, OS files, IDE, lock files) archgen listcommand to show available languages and addons--forceflag to overwrite existing project directory--dry-runflag to preview files without writinggit initautomatically run in generated projects- Custom help output with banner and usage examples
"exports"and"module"fields in package.json for proper ESM support"publishConfig": { "access": "public" }for scoped npm package- TypeScript strict mode enabled (
strict: true) - Unit test suite (vitest) for
getNameError,TemplateEngine.replaceInString,PluginRegistry CHANGELOG.md
What's Changed
- feat: archgen v1.0.2 — bug fixes, new CLI features & database choice by @Kidkender in #1
New Contributors
- @Kidkender made their first contribution in #1
Full Changelog: v1.0.0...v1.0.2
archgen v1.0.0 — First Stable Release
archgen v1.0.0
First stable release.
What's included
- Generate a production-ready backend project in under 1 second
- Interactive CLI — no flags required
- Support for Node.js and Python backends
- Optional Docker and testing setup
Stacks
Node.js — TypeScript, Fastify, Prisma, Redis, JWT, Zod, Pino, Swagger
Python — FastAPI, SQLAlchemy 2.0, Alembic, Redis, Pydantic v2, APScheduler
Installation
npm install -g archgenUsage
archgen create my-appRequirements
- Node.js >= 18
ISC © [Kidkender](https://github.com/kidkender)
Full Changelog: https://github.com/Kidkender/archgen/commits/v1.0.0