A power user focused interface for LLM base models, inspired by the designs of loom, loomsidian, exoloom, logitloom, wool, and mikupad.
Screenshots

Known issues
- Some documents may cause the text editor to render token boundaries incorrectly
- This is due to a bug in egui regarding textedit underline rendering
- Tab bars are not read by screen readers
- This is due to a bug in egui_tiles
- UI state for closed weaves persists in memory after the weave editor UI is closed, creating a slow memory leak
- This is due to a bug in egui
- CPU usage is high when the window is not visible and not minimized
- This is due to a bug in egui
- Editor subview tooltips take longer to close after scrolling has happened
- This is due to a limitation of egui
- Root nodes containing long text may overlap in the canvas view
If you are experiencing an issue not listed here or in this repository's active issues, please file an issue so that it can be fixed.
Getting started
Important
This application is a work in progress; Please make backups and report any bugs that you find.
Binary releases
Compiled binaries can be found on the releases page.
MacOS-specific instructions
Before using the app, you will need to run the following CLI command in the extracted folder:
xattr -d com.apple.quarantine tapestry*
Compiling from source
Requires the Rust Programming Language and a working C compiler to be installed.
git clone --recurse-submodules https://github.com/transkatgirl/Tapestry-Loom.git
cd Tapestry-Loom
cargo build --release
The compiled binary can be found in the ./target/release/ folder.
Updating
Run the following commands in the repository folder:
git pull
git submodule update --init --recursive
cargo build --release
Usage
See Getting Started for more information on how to use the application.
The rest of this README covers the usage of external tools which Tapestry Loom can interface with.
Migrating weaves from other Loom implementations
See migration-assistant for more information on how to migrate weaves from other Loom implementations to Tapestry Loom.
Local inference
llama.cpp's llama-server is recommended, as it has been confirmed to work properly with all of the features within Tapestry Loom (except returning prompt logprobs).
vLLM requires additional request arguments to work properly with Tapestry Loom:
- /v1/completions
return_token_ids=true- Optional; Allows (partial) reuse of output token IDs when using Tapestry Tokenize. However, (unlike llama.cpp) token IDs are only returned for the selected token, not for all top_logprobs.
- Must be removed when using
echo=true
- /v1/chat/completions
return_token_ids=true- Optional; Allows (partial) reuse of output token IDs when using Tapestry Tokenize. However, (unlike llama.cpp) token IDs are only returned for the selected token, not for all top_logprobs.
continue_final_message=trueadd_generation_prompt=false
No comments yet.