{"id":27462131,"url":"https://github.com/kitproj/kit","last_synced_at":"2026-01-12T06:37:54.855Z","repository":{"id":64932241,"uuid":"579703516","full_name":"kitproj/kit","owner":"kitproj","description":"Tiny fast local workflow engine for building and testing software","archived":false,"fork":false,"pushed_at":"2025-04-03T04:01:04.000Z","size":12286,"stargazers_count":53,"open_issues_count":13,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-15T21:47:29.366Z","etag":null,"topics":["codespaces","darwin","development","docker","gitpod","linux"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kitproj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-18T15:54:48.000Z","updated_at":"2025-04-03T04:01:08.000Z","dependencies_parsed_at":"2024-12-10T18:32:32.128Z","dependency_job_id":"cbdb3ac8-cc79-4287-b091-2a7e5eb3a941","html_url":"https://github.com/kitproj/kit","commit_stats":{"total_commits":292,"total_committers":4,"mean_commits":73.0,"dds":"0.14383561643835618","last_synced_commit":"c63e10534a9379044f2167e15af21bbcb48c22e1"},"previous_names":["alexec/kit","alexec/joy"],"tags_count":168,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitproj%2Fkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitproj%2Fkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitproj%2Fkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitproj%2Fkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitproj","download_url":"https://codeload.github.com/kitproj/kit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249161104,"owners_count":21222468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codespaces","darwin","development","docker","gitpod","linux"],"created_at":"2025-04-15T21:47:57.756Z","updated_at":"2026-01-12T06:37:54.847Z","avatar_url":"https://github.com/kitproj.png","language":"Go","readme":"# Kit - Unified Workflow Engine for Software Development\n\n[![CodeQL](https://github.com/kitproj/kit/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/kitproj/kit/actions/workflows/codeql-analysis.yml)\n[![Go](https://github.com/kitproj/kit/actions/workflows/go.yml/badge.svg)](https://github.com/kitproj/kit/actions/workflows/go.yml)\n\n## What is Kit?\n\nKit is a powerful workflow engine that simplifies complex software development environments by combining multiple tools into a single binary:\n\n- **Task execution** (like Makefile or Taskfile)\n- **Service orchestration** (like Foreman)\n- **Container management** (like Docker Compose)\n- **Kubernetes resource management** (like Tilt, Skaffold)\n- **Local development focus** (like Garden)\n\nWith Kit, you can define and manage complex workflows in a single `tasks.yaml` file, making it ideal for projects that require running multiple components simultaneously.\n\n![Kit UI Screenshot](img.png)\n\n## Key Features\n\n- **Single binary** - Easy to install and use\n- **Dependency management** - Define task dependencies in a DAG\n- **Multiple task types** - Run commands, containers, Kubernetes resources\n- **Auto-restart** - Automatically restart services on failure\n- **File watching** - Re-run tasks when files change\n- **Port forwarding** - Forward ports from services to host\n- **Web UI** - Visualize your workflow and monitor task status with real-time metrics\n\n## Quick Start\n\n### Installation\n\nDownload the standalone binary from the [releases page](https://github.com/kitproj/kit/releases/latest):\n\n```bash\n# For Linux (amd64)\nsudo curl --fail --location --output /usr/local/bin/kit https://github.com/kitproj/kit/releases/download/v1.0.0/kit_v1.0.0_linux_amd64\nsudo chmod +x /usr/local/bin/kit\n\n# For Linux (arm64)\nsudo curl --fail --location --output /usr/local/bin/kit https://github.com/kitproj/kit/releases/download/v1.0.0/kit_v1.0.0_linux_arm64\nsudo chmod +x /usr/local/bin/kit\n\n# For MacOS (Intel)\nsudo curl --fail --location --output /usr/local/bin/kit https://github.com/kitproj/kit/releases/download/v1.0.0/kit_v1.0.0_darwin_amd64\nsudo chmod +x /usr/local/bin/kit\n\n# For MacOS (Apple Silicon)\nsudo curl --fail --location --output /usr/local/bin/kit https://github.com/kitproj/kit/releases/download/v1.0.0/kit_v1.0.0_darwin_arm64\nsudo chmod +x /usr/local/bin/kit\n\n# For Go users\ngo install github.com/kitproj/kit@v1.0.0\n```\n\n### Basic Usage\n\n1. Create a `tasks.yaml` file in your project:\n\n```yaml\ntasks:\n  build:\n    command: go build .\n    watch: .  # Auto-rebuild when files change\n  run:\n    dependencies: [build]\n    command: ./myapp\n    ports: [8080]  # Define as a service that listens on port 8080\n```\n\n2. Start your workflow:\n\n```bash\nkit run  # Run the 'run' task and its dependencies\n```\n\n## Core Concepts\n\n### Jobs vs Services\n\n- **Jobs**: Run once and exit (default)\n- **Services**: Run indefinitely and listen on ports\n\n```yaml\n# Job example\nbuild:\n  command: go build .\n\n# Service example\napi:\n  command: ./api-server\n  ports: [8080]\n```\n\nServices automatically restart on failure. Configure restart behavior with `restartPolicy` (Always, Never, OnFailure).\n\n### Task Types\n\n#### Host Tasks\n\nRun commands on your local machine:\n\n```yaml\nbuild:\n  command: go build .\n```\n\n#### Shell Tasks\n\nRun shell scripts:\n\n```yaml\nsetup:\n  sh: |\n    set -eux\n    echo \"Setting up environment...\"\n    mkdir -p ./data\n```\n\n#### Container Tasks\n\nRun Docker containers:\n\n```yaml\ndatabase:\n  image: postgres:14\n  ports: [5432:5432]\n  env:\n    - POSTGRES_PASSWORD=password\n```\n\nKit can also build and run containers from a Dockerfile:\n\n```yaml\napi:\n  image: ./src/api  # Directory with Dockerfile\n  ports: [8080]\n```\n\n#### Kubernetes Tasks\n\nDeploy and manage Kubernetes resources:\n\n```yaml\ndeploy:\n  namespace: default\n  manifests:\n    - k8s/\n    - service.yaml\n  ports: [80:8080]  # Forward cluster port 80 to local port 8080\n```\n\n### Advanced Features\n\n#### Task Dependencies\n\n```yaml\ntest:\n  dependencies: [build, database]\n  command: go test ./...\n```\n\n#### Environment Variables\n\n```yaml\nserver:\n  command: ./server\n  env:\n    - PORT=8080\n    - DEBUG=true\n  envfile: .env  # Load from file\n```\n\n#### File Watching\n\n```yaml\nbuild:\n  command: go build .\n  watch: src/  # Rebuild when files in src/ change\n```\n\n#### Task Grouping\n\nOrganize tasks visually in the UI:\n\n```yaml\ntasks:\n  api:\n    command: ./api\n    ports: [8080]\n    group: backend\n  db:\n    image: postgres\n    ports: [5432]\n    group: backend\n  ui:\n    command: npm start\n    ports: [3000]\n    group: frontend\n```\n\n## Documentation\n\n- [Examples](docs/examples) - Practical examples (MySQL, Kafka, etc.)\n- [Reference](docs/reference) - Detailed configuration options\n\n## Contributing\n\nContributions are welcome! Please see our [contributing guidelines](CONTRIBUTING.md) for more information.\n\n## License\n\n[MIT License](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitproj%2Fkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitproj%2Fkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitproj%2Fkit/lists"}