gripsack

declarative user-space environments · alpha

your environment,
in one workspace.

Make the tools and configuration you depend on explicit. Declare native packages, development environments, dotfiles and tasks in TypeScript. Start Docker Engine services explicitly when your project needs them.

Linux x86_64 and WSL2 · keep your OS package manager

one graph, useful outputs

User-space packages

Pin release archives, captured sources or coherent Conda environments. Declare commands and runtime dependencies, not global installs.

Native environments

Run project commands in a selected environment. Expose the commands you want through managed profile launchers.

Profiles & dotfiles

Compose captured trees, templates and shared text blocks. Review a deployment plan, preserve local drift, retain generations.

Docker Engine services

Start digest-pinned containers with loopback ports and explicit readiness. Keep named-volume data when taking services down.

Review & native sharing

Inspect semantic changes and save deployment plans. Share retained native artifacts separately from container runtime services.

Manual tasks & checks

Name repeatable commands, prerequisites and postconditions. Validate profile files at explicit lifecycle stages.

start with one useful change

A file-only workspace needs no package build or Docker service. Save this as gripsack.ts in its own repository:

gripsack.ts
import {
  defineWorkspace, file, literalText, managedBlock, profile, workspace,
} from "@gripsack/core";

const dotfiles = profile("dotfiles", {
  files: [file({
    content: literalText("export EDITOR=vi\n"),
    destination: managedBlock("~/.profile", "gripsack-editor"),
  })],
});

export default defineWorkspace(() => workspace({ outputs: [dotfiles] }));

After installing grip, review the captured source and policy when prompted:

grip check
grip plan dotfiles
grip apply dotfiles

Review the plan before applying. grip generations lists retained states; grip rollback restores a previous managed generation. Keep independent backups of irreplaceable files. Understand ownership and recovery →

install

One core binary with its TypeScript frontend embedded. Start with files or native packages; add access to Docker Engine only for container services.

Download v0.51.0 for Linux / WSL · Installation & prerequisites

make it yours

your tools, not a new operating system

Keep system packages with your existing manager. Bring the user-space tools, project commands and personal files you want to manage into a reviewable workspace. Where gripsack fits →