| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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.
npm install kist --save-devCreate 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"npx kist
# or with a specific config
npx kist --config kist.production.yml
# see what it would do without doing it
npx kist --dry-runOr let kist write the file for you:
npm create kist # scaffold a starter chosen to fit the project
npx kist init # the same, from an already-installed kist
npx kist init -t package # a pipeline for publishing an npm packagekist 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 |
Extend kist with official action plugins:
| Plugin | Description |
|---|---|
| @getkist/action-sass | Compile SASS/SCSS to CSS |
| @getkist/action-typescript | Advanced TypeScript compilation |
| @getkist/action-nunjucks | Render Nunjucks templates |
| @getkist/action-svg | Optimize and package SVGs |
| @getkist/action-postcss | Process CSS with PostCSS |
| @getkist/action-terser | Minify JavaScript |
| @getkist/action-eslint | Lint with ESLint |
| @getkist/action-prettier | Format with Prettier |
| @getkist/action-jest | Run tests with Jest |
Install plugins via npm (packages are published under the @getkist scope):
npm install @getkist/action-sass --save-devoptions:
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"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: productionkist [options] [command]
Commands:
run Run the pipeline (default; you can omit it)
init [dir] Create a starter kist.yml
validate Check the config and that every action it names exists
schema Print the JSON Schema for kist.yml
clear-cache Delete cached step results
Options:
-c, --config <path> Config file (default: kist.yaml or kist.yml)
-l, --log-level <level> debug | info | warn | error
-v, --verbose Shorthand for --log-level debug
--live Serve the output and rebuild on file changes
--no-cache Ignore cached results and run every step
--dry-run Print the execution plan instead of running it
--dry <format> Print the plan as text or json
--graph [format] Print the stage dependency graph (dot or mermaid)
-V, --version Print the kist version
-h, --help Show help for any commandInspect a pipeline before running it:
kist --dry-run # what would run, in what order
kist --dry json # the same plan as JSON, for CI and tooling
kist --graph mermaid # the stage graph, ready to paste into Markdown--dry-run fails if the configuration names an action that is not registered, so a missing plugin surfaces before the build starts rather than midway through it.
kist publishes a JSON Schema for kist.yml. With the YAML extension installed, editors give you completion, hover documentation, and inline validation with no further setup — kist init writes the reference for you:
# yaml-language-server: $schema=https://www.getkist.com/schema.jsonThe same schema validates the file at load time, so what your editor accepts and what kist accepts cannot drift apart. kist schema prints it, which is also the quickest way to hand it to a tool or an AI assistant.
A step that declares inputs is skipped when every file matching them is unchanged since the last run. Its recorded outputs are restored and its log output is replayed, so a cached run reads the same as a real one:
options:
cache:
enabled: true
stages:
- name: build
steps:
- name: compile
action: TypeScriptCompilerAction
inputs:
- "src/**/*.ts"
- "tsconfig.json"
outputs:
- "dist/**"
env:
- NODE_ENV
options:
tsConfigPath: "./tsconfig.json"
outputDir: "./dist"The cache key covers the action, its options, the contents of every input file, the values of any environment variables listed in env, and the Node major version. A step that declares no inputs always runs: kist will not guess what a step reads.
Set cacheEnabled: false on a stage to opt it out, pass --no-cache to ignore the cache for one run, or run kist clear-cache to discard it.
git clone https://github.com/getkist/kist.git
cd kist
npm install
npm run buildkist uses a self-hosting build process:
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.json
Full documentation available at getkist.com
Contributions are welcome! See CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details.
Copyright © 2024-2026 Scape Press
Made with ❤️ by Scape Press
| Back | FazBrowse Home | New Git URL |