MCPcopy Index your code
hub / github.com/elkowar/yolk

github.com/elkowar/yolk @v1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.0 ↗ · + Follow
370 symbols 1,087 edges 30 files 59 documented · 16% 1 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://github.com/elkowar/yolk/raw/v1.1.0/github/images/yolk_banner_animated.svg" height="200" align="center"/>

Yolk – Painfree Templated Dotfile Management

Packaging status

Yolk is a cross platform dotfile management tool with a unique spin on templating, sitting somewhere in between GNU Stow and chezmoi.

Have a look at our documentation for more information on how to get started!

The Concept

Yolk allows you to use simple templates in your configuration files without having to worry about keeping a separate template file and the generated config file in sync. This is achieved through a design that allows all templates to be included inside comments in your actual configuration file.

Let's demonstrate:

# Use a different font on one host
# {% if SYSTEM.hostname == "epic-desktop" %}
font="Fira Code"
# {% else %}
#<yolk> font="Iosevka"
# {% end %}

[colors]
# Load your colors from your yolk configuration
background="#282828" # {< replace_color(data.colors.background) >}
foreground="#ebdbb2" # {< replace_color(data.colors.foreground) >}

Yolk will now be able to run the corresponding modifications on the file itself, allowing you to set templated values while keeping the template directly in the same file.

User Configuration

Yolk template expressions and configuration are written in the Rhai scripting language. You can provide custom data to use in your templates via the yolk.rhai file in your yolk directory, which allows you to fetch data dynamically from your system, or reference different static data depending on your system.

Version Control

How does this work with git? Given that the concrete files in use on your system may be different across machines, adding those to version control directly would result in a lot of merge conflicts frequently. Yolk solves this by only commiting a "canonical" version of your templates, generated right before you commit. This means that the version of your configuration seen in git will always be generated from a consistent, stable context.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 172
Function 159
Class 25
Enum 13
Interface 1

Languages

Rust100%
TypeScript1%

Modules by API surface

src/templating/parser.rs66 symbols
src/yolk_paths.rs43 symbols
src/eggs_config.rs28 symbols
src/yolk.rs24 symbols
src/util.rs24 symbols
src/tests/yolk_tests.rs24 symbols
src/script/stdlib.rs20 symbols
tests/cli.rs18 symbols
src/deploy.rs18 symbols
src/templating/error.rs17 symbols
src/templating/comment_style.rs16 symbols
src/templating/element.rs12 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add yolk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page