{"id":25226519,"url":"https://github.com/kleer001/Text_Loom","last_synced_at":"2025-10-26T02:30:49.423Z","repository":{"id":272819451,"uuid":"843153566","full_name":"kleer001/Text_Loom","owner":"kleer001","description":"Network for procedural editing of text with LLMs","archived":false,"fork":false,"pushed_at":"2025-02-04T22:33:59.000Z","size":56602,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-04T23:27:30.652Z","etag":null,"topics":["ai","cli","llm","network","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kleer001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-15T22:36:01.000Z","updated_at":"2025-02-04T22:34:02.000Z","dependencies_parsed_at":"2025-01-16T20:43:14.536Z","dependency_job_id":"b3ef6ea2-c234-4d7b-aff9-18faaa790ceb","html_url":"https://github.com/kleer001/Text_Loom","commit_stats":null,"previous_names":["kleer001/text_loom"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleer001%2FText_Loom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleer001%2FText_Loom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleer001%2FText_Loom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleer001%2FText_Loom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kleer001","download_url":"https://codeload.github.com/kleer001/Text_Loom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238241929,"owners_count":19439778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cli","llm","network","python"],"created_at":"2025-02-11T06:02:01.991Z","updated_at":"2025-10-26T02:30:49.418Z","avatar_url":"https://github.com/kleer001.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003c!-- \u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/TL_logo.png\" alt=\"Leaderloop GIF\"\u003e\n\u003c/p\u003e --\u003e\n\n# \u003cp style=\"text-align: center;\"\u003e  ***Text Loom:***:pencil::thread:  \u003cp\u003e\n\n\n## :tired_face: Why? \nI was fed up with copying and pasting between an LLM and a text editor when trying to work procedurally with a limited context window (this was early 2024).  \n3D VFX has Houdini, images have Nuke, games have Unreal's Blueprint, music has Reaktor, sound has PureData. ***Why is there no node based editor for text?!***\n\u003e Well, actually there's Nodysseus (https://nodysseus.io/) and Nodes (https://nodes.io) , but they have different use cases.\n\n## :speech_balloon: What? \nText Loom is a fun workspace for creating networks that manage queries and build on them.  \nAll from the comfort of your terminal!\n\n# :page_with_curl: How?\n\n*Text flows from one node to the next.*  \nThe Text Loom philosophy, it's backend, is all about **text**.  \n*Specifically* **lists of text.**  \n\n## Nodes pass text to each other:  \n* One node creates text: **([Text](https://github.com/kleer001/Text_Loom/wiki/Text-Node))**\n* Some nodes read and write text files: **([FileIn](https://github.com/kleer001/Text_Loom/wiki/FileIn-Node), [FileOut](https://github.com/kleer001/Text_Loom/wiki/FileOut-Node))**\n* Some nodes create lists: **([Section](https://github.com/kleer001/Text_Loom/wiki/Section-Node), [Split](https://github.com/kleer001/Text_Loom/wiki/Split-Node),  [MakeList](https://github.com/kleer001/Text_Loom/wiki/MakeList-Node))**\n* One node combines lists: **([Merge](https://github.com/kleer001/Text_Loom/wiki/Merge-Node))**\n* One node talks to an LLM: **([Query](https://github.com/kleer001/Text_Loom/wiki/Query-Node))**\n* One node can contain other nodes and iterate over them in loops: **([Looper](https://github.com/kleer001/Text_Loom/wiki/Looper-Node))**\n* And one node does nothing at all except pass the text along: **([Null](https://github.com/kleer001/Text_Loom/wiki/Null-Node))**\n\n\n\n## :rocket: Start (automagically)\n\n\u003ccode\u003ecurl -fsSL https://raw.githubusercontent.com/kleer001/Text_Loom/master/install.sh | bash ; cd Text_Loom \u003c/code\u003e\n \n\n## :sparkles: Start (manual) \n\u003cdetails\u003e\n* Make sure you have **git** installed and **python3** (version 3.8 or higher)\n* **Clone** the repository  \n\u003ccode\u003egit clone https://github.com/kleer001/Text_Loom ; cd Text_Loom\u003c/code\u003e\n* **Create** a local venv  \n\u003ccode\u003epython3 -m venv .venv\u003c/code\u003e\n* **Activate** it and set PYTHONPATH  \n\u003ccode\u003esource .venv/bin/activate ; export PYTHONPATH=\\$PYTHONPATH:$(pwd)/src\u003c/code\u003e\n* **Install** in development mode  \n\u003ccode\u003epip install -e .\u003c/code\u003e\n* **Run** the program  \n\u003ccode\u003epython3 src/TUI/tui_skeleton.py\u003c/code\u003e\n\nNote for Windows users:  \n\u003ccode\u003eReplace  **source .venv/bin/activate** with **.venv\\Scripts\\activate**  \nand **export PYTHONPATH=\\$PYTHONPATH:$(pwd)/src** with **set PYTHONPATH=%PYTHONPATH%;%cd%\\src**\u003c/code\u003e\n\u003c/details\u003e\n\n\n## :package: Currently supported LLMS platforms \n\u003cdetails\u003e\n  \n**in  src/core/settings.cfg**\n\n| LLM Platform | URL                                    | Endpoint                                     |\n|--------------|----------------------------------------|----------------------------------------------|\n| Ollama       | localhost:11434                        | /api/generate                                |\n| LM Studio    | localhost:1234                         | /v1/chat/completions                         |\n| GPT4All      | localhost:4891                         | /v1/completions                              |\n| LocalAI      | localhost:8080                         | /v1/chat/completions                         |\n| llama.cpp    | localhost:8080                         | /completion                                  |\n| oobabooga    | localhost:5000                         | /v1/chat/completions                         |\n| ChatGPT      | https://api.openai.com                 | /v1/chat/completions                         |\n| Perplexity   | https://api.perplexity.ai             | /v1/chat/completions                         |\n| Claude       | https://api.anthropic.com              | /v1/messages                                 |\n| Gemini       | https://generativelanguage.googleapis.com | /v1/models/gemini-1.5-pro:generateContent   |\n\n* Please suggest more free local LLMs if you like. And feel free to change your local settings.cfg to fit your own purposes. The structure should be self-evident from the examples in it.  \n\u003c/details\u003e\n\n## :walking: GUI WALK THROUGH \n### :eyes: MAIN WINDOW \n\n\u003cimg src=\"images/mainwin3_trim.gif\" alt=\"Demo of MakeList functionality GIF\"\u003e\n\n\n### Primary Workspace\nEach Primary window can be navigated to with the keycommand **CTRL+(n/a/g)** \n- [**N**ode Network](#node-network) - Central workspace for creating and connecting nodes. Displays [node](https://github.com/kleer001/Text_Loom/wiki/Nodes,-nodes,-nodes) states, connections, and hierarchies using visual indicators.\n- [P**a**rameters](#parameters) - Center Top panel showing properties of selected nodes.\n- [**G**lobals](#globals) - Right Top panel. System-wide variables accessible across the network.\n\n### Execution and Output\n- **[Output Display](#output-display)** - Center bottom. Shows formatted results from node evaluations with clear item separation.\n- **[Status Window](#status-window)** - Right bottom. Real-time system message monitoring, capturing stdout and stderr streams.\n- **Help window** - Bottom. Shows the key commands available for the active window.\n- **Mode Line** - Gutter. Show the active window, current filename, last window switched to, and keypressed.\n\n---\n\n# Please see the extensive [wiki](https://github.com/kleer001/Text_Loom/wiki) for more detailed information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkleer001%2FText_Loom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkleer001%2FText_Loom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkleer001%2FText_Loom/lists"}