Introducing Knitto: Keeping Repositories Stitched Together
Managing one repository is usually straightforward. Managing dozens or hundreds is where small inconsistencies begin to add up. One repository is missing a license. Another has an outdated workflow. A third uses a slightly different TypeScript configuration. Before long, maintaining shared standards becomes its own project, and every improvement requires opening the same pull request across an entire organization. I built Knitto and Knitto GH to make that work calmer, safer, and a little more pleasant.
Knitto
Knitto is a template aware filesystem reconciler. It takes a repository template and works out what needs to change in a project to bring it into alignment. A template can manage:
- Ordinary files
- Structured files such as
package.json - Shared GitHub Actions workflows
- Other repository conventions
Templates can also use repository metadata, so each project keeps its own identity while sharing the same underlying standards. The goal is not to replace every file with an identical copy. Knitto can preserve project specific values while enforcing the parts that should remain consistent.
Most importantly, Knitto shows its work:
- It produces a plan before applying changes
- It records the exact template revision in a lock file
- It makes updates reviewable through normal Git workflows
Knitto GH
Knitto GH is the GitHub fleet layer for Knitto. It discovers repositories using a template, checks their current state, and helps coordinate updates across the fleet.
- If a repository has the managed update workflow, Knitto GH prints the command needed to start it.
- If the workflow has not been installed yet, it provides a local bootstrap path.
Knitto GH is intentionally careful. Fleet commands do not silently dispatch workflows, push branches, approve pull requests, or merge changes. They print exact commands so a person can review what is about to happen.
Once repositories have their update workflows, the normal update process stays remote. GitHub Actions resolves the latest template release, applies it, runs the repository quality checks, and opens a pull request containing precise Knitto provenance.
Why Knitto?
The name comes from the idea of knitting repositories together. It does not make every project identical. It gives them a shared pattern. Each repository can still be its own thing. Knitto simply helps the common pieces stay connected, including workflows, policies, configuration, and maintenance practices that teams would otherwise repeat by hand. A good repository template should feel less like a rigid mold and more like a dependable pattern that can evolve over time.
Open source and early
Both projects are open source and still young.
- You can find Knitto on GitHub and Knitto on npm.
- You can also find Knitto GH on GitHub and Knitto GH on npm.
There is plenty left to explore, but the full loop is already taking shape. You can define a reusable repository pattern, discover the repositories that use it, apply new releases remotely, run each project checks, and review the resulting pull requests. Repository maintenance will always require care. My hope is that Knitto makes that care easier to share and helps a large collection of repositories feel a little more thoughtfully stitched together.
Comments
No comments yet. Start the discussion.