Taskend consists of two parts:

  • Taskend: A incremental task runner which can be used from JavaScript/TypeScript while being truely parallel and have performance of Rust.

  • Testend: The extension for any testing system which can be used to skip tests that are known to be passing and there was no change in the code or the dependency.



It supports very incremental testing for CI/CD, out of the box. This project started from the idea that we already tested the code before, and we don't need to test it again if it is not changed. This is very problematic for CI/CD, because it is very costly to run all tests for every commit. Lots of companies I know just decided to not run tests for every commit - but we can do better.


  • Truely incremental test execution.

You don't need to run all tests for every commit. taskend can run only the tests that are affected by the changes. Note that graph creation is also persistently cached, so no worries even if you work for a huge Enterprise monorepo.

  • Langauage agnostic design.

It consists of a language agnostic query engine for caching and querying file changes between runs and language specific adapters. You will be able to use it for any language, althouh initially it will support only JavaScript, TypeScript and Rust.

  • Parallel test execution. (If possilble)
  • Out of the box support for CI/CD.

The merge queue can be great again when you have this.

  • Supports zero-migration mode for existing projects. (JS/TS only)

You don't need to rewrite your tests to use this. taskend provides compatibility layer for various test frameworks.