A modern development toolkit with unified CLI for package management, versioning, publishing, code quality, and Git workflow automation.
- @funish/basis - Unified CLI toolkit for development workflows: package management, versioning, publishing, code quality, and Git automation
- @funish/build - Modern build system powered by Rolldown with Jiti stub support and Oxc transformation
# Install globally
pnpm add -g @funish/basis
# Initialize in your project
basis init
# Use commands
basis add lodash
basis lint
basis version patch
basis publish// basis.config.ts
import { defineBasisConfig } from "@funish/basis/config";
export default defineBasisConfig({
git: {
hooks: {
"pre-commit": "basis git staged",
"commit-msg": "basis git lint-commit",
},
staged: {
rules: {
"*.{ts,tsx,js,jsx}": "basis lint --fix",
"*.{json,md,yml,yaml}": "basis fmt --write",
},
},
},
});- Node.js 18.x or higher
- pnpm 9.x or higher
- Git for version control
-
Clone the repository:
git clone https://github.com/funish/basis.git cd basis -
Install dependencies:
pnpm install
-
Development mode:
pnpm dev
-
Build all packages:
pnpm build
-
Test locally:
# Link the package globally cd packages/basis pnpm link --global # Test your changes basis --version
pnpm dev # Development mode with watch
pnpm build # Build all packages
pnpm lint # Run lintingWe welcome contributions!
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/basis.git - Install:
pnpm install - Develop:
pnpm dev - Test:
pnpm build && basis <your-command> - Commit: Use conventional commits (
feat:,fix:, etc.) - Push to your fork and create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Funish