Skip to content
/ kist Public

Package Pipeline Processor

License

Notifications You must be signed in to change notification settings

getkist/kist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,662 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

kist logo

kist

Lightweight Package Pipeline Processor


Website NPM Version GitHub License

Report a Bug Request a Feature Start a Discussion


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-dev

Create 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.yml

Core 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-dev

Configuration

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: production

CLI 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 version

Development

Build from Source

git clone https://github.com/getkist/kist.git
cd kist
npm install
npm run build

kist uses a self-hosting build process:

  1. tsc compiles TypeScript (bootstrap)
  2. kist runs 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.json

Documentation

Full documentation available at getkist.com


Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create a feature branch
  3. Make changes and add tests
  4. Submit a pull request

License

MIT License - see LICENSE for details.

Copyright © 2024-2026 Scape Agency


Made with ❤️ by Scape Agency