kist
v0.1.67
Published
Lightweight Package Pipeline Processor with Plugin Architecture
Maintainers
Readme
kist is a lightweight, plugin-based package pipeline processor for modern JavaScript/TypeScript projects. It provides a modular framework for automating build workflows with support for live reload, parallel execution, and extensible actions.
Features
- Plugin Architecture - Extend functionality with official and community plugins
- Pipeline System - Define stages and steps in YAML configuration
- Core Actions - Built-in actions for common tasks (copy, clean, compile, etc.)
- Live Reload - Watch mode with automatic rebuilds
- TypeScript - Full TypeScript support with type definitions
- Self-Hosting - kist builds itself using its own pipeline
- Caching - Smart build caching for faster rebuilds
- Parallel Execution - Run stages and steps concurrently
Quick Start
Installation
npm install kist --save-devCreate Configuration
Create a kist.yml file in your project root:
stages:
- name: build
steps:
- name: clean
action: DirectoryCleanAction
options:
dirPath: "./dist"
- name: copy-files
action: FileCopyAction
options:
srcFile: "./README.md"
destDir: "./dist"
- name: compile
action: TypeScriptCompilerAction
options:
tsConfigPath: "./tsconfig.json"
outputDir: "./dist/js"Run Pipeline
npx kist
# or with a specific config
npx kist --config kist.production.ymlCore Actions
kist includes these built-in actions:
| Action | Description |
| -------------------------- | ---------------------------- |
| DirectoryCleanAction | Remove directory contents |
| DirectoryCopyAction | Copy directories recursively |
| DirectoryCreateAction | Create directories |
| FileCopyAction | Copy individual files |
| FileRenameAction | Rename or move files |
| TypeScriptCompilerAction | Compile TypeScript |
| PackageManagerAction | Generate package.json |
| VersionWriteAction | Update version in files |
| RunScriptAction | Execute npm scripts |
| DocumentationAction | Generate documentation |
Official Plugins
Extend kist with official action plugins:
| Plugin | Description | | --------------------------------------------------------------------------- | ------------------------------- | | kist-action-sass | Compile SASS/SCSS to CSS | | kist-action-typescript | Advanced TypeScript compilation | | kist-action-jinja | Process Jinja2 templates | | kist-action-svg | Optimize and package SVGs | | kist-action-test | Run tests with Jest/Vitest |
Install plugins via npm:
npm install kist-action-sass --save-devConfiguration
Full Example
options:
mode: development
logLevel: debug
live:
enabled: true
port: 3000
watchPaths:
- src/**
cache:
enabled: true
cacheDir: ".kist-cache"
performance:
parallelProcessing: true
maxConcurrentStages: 4
stages:
- name: Preprocessing
parallel: false
steps:
- name: Clean
action: DirectoryCleanAction
options:
dirPath: "./dist"
- name: CopyAssets
action: DirectoryCopyAction
options:
srcDir: "./src/assets"
destDir: "./dist/assets"
- name: Compile
parallel: true
steps:
- name: CompileTS
action: TypeScriptCompilerAction
options:
tsConfigPath: "./tsconfig.json"
outputDir: "./dist/js"
- name: CompileSASS
action: StyleProcessingAction
options:
inputFile: "./src/scss/main.scss"
outputFile: "./dist/css/main.css"Config Inheritance
Create reusable base configurations:
# kist.base.yml
stages:
- name: build
steps:
- name: compile
action: TypeScriptCompilerAction
options:
tsConfigPath: "./tsconfig.json"# kist.production.yml
extends: ./kist.base.yml
options:
mode: productionCLI Options
kist [options]
Options:
--config, -c Path to config file (default: kist.yml)
--live, -l Enable live reload mode
--verbose, -v Enable verbose logging
--help, -h Show help
--version Show versionDevelopment
Build from Source
git clone https://github.com/getkist/kist.git
cd kist
npm install
npm run buildkist uses a self-hosting build process:
tsccompiles TypeScript (bootstrap)kistruns its own pipeline for packaging
Project Structure
kist/
├── src/ts/
│ ├── actions/ # Built-in action implementations
│ ├── core/ # Pipeline engine, config, plugins
│ ├── interface/ # TypeScript interfaces
│ ├── live/ # Live reload server
│ ├── cli.ts # CLI entry point
│ └── kist.ts # Main Kist class
├── dist/ # Compiled output
├── kist.yml # Build configuration
└── package.jsonDocumentation
Full documentation available at getkist.com
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Make changes and add tests
- Submit a pull request
License
MIT License - see LICENSE for details.
Copyright © 2024-2026 Scape Agency
