{"id":1894,"date":"2026-04-13T13:48:34","date_gmt":"2026-04-13T13:48:34","guid":{"rendered":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/"},"modified":"2026-04-13T13:48:34","modified_gmt":"2026-04-13T13:48:34","slug":"luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow","status":"publish","type":"post","link":"https:\/\/dev95.site\/ar\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/","title":{"rendered":"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow"},"content":{"rendered":"<div id=\"dev95-1824191462\" class=\"dev95-- dev95-entity-placement\"><script async=\"async\" data-cfasync=\"false\" src=\"https:\/\/pl27862732.profitableratecpmnetwork.com\/2ad7a50e0bbc23ac6801d7b77c501463\/invoke.js\"><\/script>\r\n<div id=\"container-2ad7a50e0bbc23ac6801d7b77c501463\"><\/div><\/div><div><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png?w=1280&#038;ssl=1\" alt=\"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow\"><\/p>\n<p>Most developers never question where their CLI tools come from. You run <code>brew install swiftlint<\/code>, it works, and you move on. But in teams of any size, the question &#8220;which version of SwiftLint are you running?&#8221; surfaces regularly. Someone upgrades globally, a build breaks on CI, and the team gets distracted for hours to figure out what changed.<\/p><div id=\"dev95-2387614651\" class=\"dev95- dev95-entity-placement\"><center>\r\n<script>\r\n  atOptions = {\r\n    'key' : '4ba6b6513c00e0ba76511f798ae56401',\r\n    'format' : 'iframe',\r\n    'height' : 50,\r\n    'width' : 320,\r\n    'params' : {}\r\n  };\r\n<\/script>\r\n<script src=\"https:\/\/www.highrevenueformat.com\/4ba6b6513c00e0ba76511f798ae56401\/invoke.js\"><\/script>\r\n\t<\/center><\/div>\n<p>At <a href=\"https:\/\/www.justeattakeaway.com\/?ref=albertodebortoli.com\">Just Eat Takeaway<\/a>, a couple of years ago I built an internal tool called ToolManager that solved exactly this problem for our iOS teams. It pinned tool versions per project, downloaded pre-built binaries, and stayed out of the way. It worked well \u2014 well enough that I wrote about the concept in <a href=\"https:\/\/albertodebortoli.com\/2025\/07\/13\/how-to-implement-a-decentralised-cli-tool-manager\/\">How to Implement a Decentralised CLI Tool Manager<\/a>. That article documented the design principles and the reasoning behind a decentralised approach. The experience I built at JET and the feedback from the community convinced me to take the idea further: <a href=\"https:\/\/luca.tools\/?ref=albertodebortoli.com\"><strong>Luca<\/strong><\/a><strong> is a proper open-source project, built from scratch<\/strong>, expanding the original concept into something broader \u2014 including skills management for AI coding agents.<\/p>\n<h2 id=\"the-problem-with-centralized-tool-management\">The problem with centralized tool management<\/h2>\n<p>Homebrew is excellent at what it does. But it was designed to manage system-wide software, not project-specific developer tools. It installs one version of SwiftLint globally. If project A needs 0.53.0 and project B needs 0.62.0, you are left with some confusing Homebrew gymnastics.<\/p>\n<p><a href=\"https:\/\/github.com\/yonaskolb\/Mint?ref=albertodebortoli.com\">Mint<\/a> solves the versioning problem for Swift packages \u2014 and it does it well. But it builds from source, which requires a full Swift toolchain and can be slow. It is also limited to Swift packages. In practice, teams use tools written in Go, Rust, Python, Zig, and more. A version manager that only covers one language leaves gaps.<\/p>\n<p>Tools like <a href=\"https:\/\/mise.jdx.dev\/?ref=albertodebortoli.com\">mise<\/a> take a broader approach, combining tool management with environment variables, task running, and a plugin system. It is powerful, but that power comes with complexity that not every team needs.<\/p>\n<blockquote><p>The point is not to replace Homebrew, Mint, or mise. It is to fill a gap they were never designed to fill: <strong>project-local, version-pinned installation of pre-built binaries from any source<\/strong>, with zero configuration overhead.<\/p><\/blockquote>\n<h2 id=\"introducing-luca\">Introducing Luca<\/h2>\n<p><a href=\"https:\/\/luca.tools\/?ref=albertodebortoli.com\">Luca<\/a> is a lightweight tool and skills manager for macOS and Linux, written in Swift. It reads a YAML file called a <code>Lucafile<\/code>, downloads pre-built binaries from GitHub Releases or any URL, and symlinks them into <code>.luca\/tools\/<\/code> inside the project directory. No central registry. No building from source. No global PATH pollution. Read the <a href=\"https:\/\/luca.tools\/manifesto.html?ref=albertodebortoli.com\"><strong>Manifesto<\/strong><\/a>.<\/p>\n<p>Install it with a single command:<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/luca.tools\/install.sh | bash<\/code><\/pre>\n<p>Then create a <code>Lucafile<\/code> in your project:<\/p>\n<pre><code class=\"language-yaml\">---\ntools:\n\u00a0 - name: FirebaseCLI\n\u00a0 \u00a0 version: 14.12.1\n\u00a0 \u00a0 url: https:\/\/github.com\/firebase\/firebase-tools\/releases\/download\/v14.12.1\/firebase-tools-macos\n\u00a0 - name: SwiftLint\n\u00a0 \u00a0 binaryPath: SwiftLintBinary.artifactbundle\/swiftlint-0.61.0-macos\/bin\/swiftlint\n\u00a0 \u00a0 version: 0.61.0\n\u00a0 \u00a0 url: https:\/\/github.com\/realm\/SwiftLint\/releases\/download\/0.61.0\/SwiftLintBinary.artifactbundle.zip\n\u00a0 - name: Tuist\n\u00a0 \u00a0 binaryPath: tuist\n\u00a0 \u00a0 version: 4.80.0\n\u00a0 \u00a0 url: https:\/\/github.com\/tuist\/tuist\/releases\/download\/4.80.0\/tuist.zip<\/code><\/pre>\n<p>The <code>binaryPath<\/code> field handles nested archives \u2014 when the binary lives inside a subdirectory of the zip. For direct executables, you can omit it entirely. Optional <code>checksum<\/code> and <code>algorithm<\/code> fields (supporting MD5, SHA1, SHA256, SHA512) let you verify integrity.<\/p>\n<h2 id=\"how-it-works\">How it works<\/h2>\n<p>You can install tools directly from GitHub Releases:<\/p>\n<pre><code>luca install TogglesPlatform\/ToggleGen@1.0.0<\/code><\/pre>\n<p>or with a Lucafile:<\/p>\n<pre><code>luca install<\/code><\/pre>\n<p>Run <code>luca install<\/code> and Luca downloads each tool at <code>~\/.luca\/tools\/{ToolName}\/{versio}\/<\/code>\u200a\u2014\u200aa global cache shared across projects\u200a\u2014\u200aand creates symlinks in <code>.luca\/tools\/<\/code> inside your project directory. Different projects can pin different version of the same tool without \u00a0<\/p>\n<pre><code class=\"language-bash\">luca install\n\n# Tools are immediately available\nswiftlint --version \u00a0 # 0.61.0\ntuist --help<\/code><\/pre>\n<p>Two automation features make it practical for daily use. A <strong>shell hook<\/strong> (sourced from <code>~\/.luca\/shell_hook.sh<\/code>) automatically prepends <code>.luca\/tools\/<\/code> to your PATH when you <code>cd<\/code> into a project \u2014 and removes it when you leave. A <strong>git post-checkout hook<\/strong> runs <code>luca install<\/code> automatically after <code>git checkout<\/code> or <code>git switch<\/code>, so tools stay in sync with the branch. Switch to a branch that pins SwiftLint 0.62.0 and it is there without thinking about it.<\/p>\n<p>You can also install tools directly from GitHub Releases without a Lucafile:<\/p>\n<pre><code class=\"language-bash\">luca install TogglesPlatform\/ToggleGen@1.0.0<\/code><\/pre>\n<h2 id=\"skills-management-the-second-dimension\">Skills management: the second dimension<\/h2>\n<p>Tool management alone would justify Luca&#8217;s existence, but the developer landscape has shifted. AI coding agents \u2014 Claude Code, Cursor, GitHub Copilot, Gemini CLI, Windsurf, and dozens more \u2014 now read project-local Markdown files as &#8220;skills&#8221; or &#8220;instructions&#8221; that shape their behaviour.<\/p>\n<p>The problem is fragmentation. Each agent stores skills in a different directory: <code>.claude\/skills\/<\/code>, <code>.cursor\/skills\/<\/code>, <code>.agents\/skills\/<\/code>, <code>.windsurf\/skills\/<\/code>, and so on. Luca currently supports more then 4o agents. Installing the same skill for multiple agents means copying files to multiple locations \u2014 a tedious and error-prone process that no one should do manually.<\/p>\n<p>Luca solves this with the <code>skills<\/code> and <code>agents<\/code> sections of the Lucafile:<\/p>\n<pre><code class=\"language-yaml\">---\ntools:\n\u00a0 - name: SwiftLint\n\u00a0 \u00a0 binaryPath: SwiftLintBinary.artifactbundle\/swiftlint-0.61.0-macos\/bin\/swiftlint\n\u00a0 \u00a0 version: 0.61.0\n\u00a0 \u00a0 url: https:\/\/github.com\/realm\/SwiftLint\/releases\/download\/0.61.0\/SwiftLintBinary.artifactbundle.zip\n\nrepos:\n\u00a0 vercel: vercel-labs\/agent-skills\n\nagents:\n\u00a0 - claude-code\n\u00a0 - cursor\n\nskills:\n\u00a0 - name: swift-testing-expert\n\u00a0 \u00a0 repository: AvdLee\/Swift-Testing-Agent-Skill\n\u00a0 - name: frontend-design\n\u00a0 \u00a0 repository: vercel\n\u00a0 - name: skill-creator\n\u00a0 \u00a0 repository: vercel<\/code><\/pre>\n<p>The <code>repos<\/code> section defines shorthand aliases so you do not repeat full repository paths. Skills are Markdown files with YAML frontmatter, hosted in Git repositories \u2014 following the convention established by <a href=\"https:\/\/github.com\/vercel-labs\/agent-skills?ref=albertodebortoli.com\">Vercel Labs&#8217; agent-skills<\/a>. The <code>agents<\/code> list controls which agents receive the skill files; omit it to target all the known agents.<\/p>\n<p>You can also install skills directly from the command line:<\/p>\n<pre><code class=\"language-bash\">luca install vercel-labs\/agent-skills\nluca install AvdLee\/Swift-Concurrency-Agent-Skill \n  --skill swift-concurrency \n  --agent claude-code<\/code><\/pre>\n<h2 id=\"ci-integration\">CI integration<\/h2>\n<p>Luca ships a GitHub Action \u2014 <a href=\"https:\/\/github.com\/marketplace\/actions\/setup-luca?ref=albertodebortoli.com\">setup-luca<\/a> \u2014 that installs Luca and your project&#8217;s tools in two lines:<\/p>\n<pre><code class=\"language-yaml\">steps:\n\u00a0 - uses: actions\/checkout@v4\n\u00a0 - uses: LucaTools\/setup-luca@v1\n\u00a0 \u00a0 with:\n\u00a0 \u00a0 \u00a0 spec: Lucafile\n\u00a0 - run: swiftlint --version<\/code><\/pre>\n<p>For tool authors, the companion repository <a href=\"https:\/\/github.com\/LucaTools\/LucaWorkflows?ref=albertodebortoli.com\">LucaWorkflows<\/a> provides ready-to-use GitHub Actions workflows to build, package, and publish Luca-compatible releases. Push a tag and get a release with macOS universal and Linux binaries \u2014 templates are available for Swift, Go, Rust, Python, C#, and Zig.<\/p>\n<h2 id=\"where-luca-sits-today\">Where Luca sits today<\/h2>\n<p>Luca is a young project and I want to be upfront about that. It works well for the use cases it targets \u2014 pre-built binary distribution and AI agent skill management \u2014 but it is not trying to replace Homebrew or any general-purpose package manager.<\/p>\n<p>The entire ecosystem \u2014 <a href=\"https:\/\/github.com\/LucaTools\/Luca?ref=albertodebortoli.com\">Luca<\/a>, <a href=\"https:\/\/github.com\/LucaTools\/setup-luca?ref=albertodebortoli.com\">setup-luca<\/a>, <a href=\"https:\/\/github.com\/LucaTools\/LucaWorkflows?ref=albertodebortoli.com\">LucaWorkflows<\/a> \u2014 is open source under the Apache 2.0 license. Luca is written in Swift 6 with strict concurrency checking and has full test coverage on both macOS and Linux. <a href=\"https:\/\/luca.tools\/Luca\/documentation\/lucacli\/?ref=albertodebortoli.com\">Documentation<\/a> and <a href=\"https:\/\/luca.tools\/Luca\/tutorials\/luca\/?ref=albertodebortoli.com\">tutorials<\/a> are available at <a href=\"https:\/\/luca.tools\/?ref=albertodebortoli.com\" rel=\"noreferrer\">luca.tools<\/a>.<\/p>\n<p>What started as an internal tool at Just Eat Takeaway \u2014 one that proved the concept in production across multiple iOS teams \u2014 became a <a href=\"https:\/\/albertodebortoli.com\/2025\/07\/13\/how-to-implement-a-decentralised-cli-tool-manager\/\">blog post<\/a> that documented the design principles, and eventually an open-source project that takes those ideas further. At JET, we eventually replaced ToolManager with Luca to leverage its feature set. In the latest release at the time of writing (April 2026), Luca appears solid with various edge cases covered.<\/p>\n<blockquote><p>I believe the right tool manager is the one that stays out of your way. It pins versions in a file, downloads pre-built binaries, and disappears into the background. If it does its job, you forget it is there \u2014 until you switch branches and everything just works.<\/p><\/blockquote>\n<p>The project lives at <a href=\"https:\/\/github.com\/LucaTools?ref=albertodebortoli.com\">github.com\/LucaTools<\/a>, with documentation at <a href=\"https:\/\/luca.tools\/?ref=albertodebortoli.com\">luca.tools<\/a>. Contributions and feedback are welcome.<\/p>\n<p>Find me on <a href=\"https:\/\/x.com\/albertodebo?ref=albertodebortoli.com\">X<\/a> \/ <a href=\"https:\/\/bsky.app\/profile\/albertodebo.bsky.social?ref=albertodebortoli.com\">Bluesky<\/a> \/ <a href=\"https:\/\/www.linkedin.com\/in\/albertodebortoli\/?ref=albertodebortoli.com\">LinkedIn<\/a>.<\/p>\n<\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1894\" class=\"pvc_stats total_only\" data-element-id=\"1894\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewbox=\"0 0 502 315\" preserveaspectratio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/i0.wp.com\/dev95.site\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif?resize=16%2C16&#038;ssl=1\" border=\"0\" \/><\/p>\n<div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Most developers never question where their CLI tools come from. You run brew install swiftlint, it works, and you move on. But in teams of any size, the question &#8220;which version of SwiftLint are you running?&#8221; surfaces regularly. Someone upgrades<\/p>\n<div class=\"hosteria-entry-more\"><a href=\"https:\/\/dev95.site\/ar\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/\" class=\"no-underline font-light  group-hover:text-primary-800 dark:group-hover:text-primary-300 py-1\">Read more &gt;&gt;&gt;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1894\" class=\"pvc_stats total_only\" data-element-id=\"1894\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewbox=\"0 0 502 315\" preserveaspectratio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dev95.site\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=\"0\" \/><\/p>\n<div class=\"pvc_clear\"><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fp_fajr_begins":"","fp_fajr_iqamah":"","fp_dhuhr_begins":"","fp_dhuhr_iqamah":"","fp_asr_begins":"","fp_asr_iqamah":"","fp_maghrib_begins":"","fp_maghrib_iqamah":"","fp_isha_begins":"","fp_isha_iqamah":"","fp_midnight":"","fp_midnight_name":"","fp_sunrise":"","fp_single_prayer_begins_title":"","fp_single_prayer_iqamah_title":"","fp_prayer_times_for_today":"","fp_hijra_date":"","fp_fajr_name":"","fp_dhuhr_name":"","fp_asr_name":"","fp_maghrib_name":"","fp_isha_name":"","fp_sunrise_name":"","fp_currentDate":"","fp_current_time":"","fp_current_title":"","fp_current_location":"","fp_masjid_name":"","fp_prayer_title":"","fp_next_prayer_iqamah_time":"","fp_next_prayer_iqamah_title":"","fp_next_prayer_begins_time":"","fp_next_prayer_begins_title":"","fp_next_prayer_title":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[37],"tags":[],"class_list":["post-1894","post","type-post","status-publish","format-standard","hentry","category-posts"],"a3_pvc":{"activated":true,"total_views":0,"today_views":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow - Dev95<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dev95.site\/ar\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow - Dev95\" \/>\n<meta property=\"og:description\" content=\"Most developers never question where their CLI tools come from. You run brew install swiftlint, it works, and you move on. But in teams of any size, the question &#8220;which version of SwiftLint are you running?&#8221; surfaces regularly. Someone upgradesRead more &gt;&gt;&gt;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dev95.site\/ar\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/\" \/>\n<meta property=\"og:site_name\" content=\"Dev95\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-13T13:48:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png\" \/>\n<meta name=\"author\" content=\"dev95\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0643\u064f\u062a\u0628 \u0628\u0648\u0627\u0633\u0637\u0629\" \/>\n\t<meta name=\"twitter:data1\" content=\"dev95\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u062f\u0642\u0627\u0626\u0642\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/\"},\"author\":{\"name\":\"dev95\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/person\\\/b807805ffe2916206b04d0938bce0298\"},\"headline\":\"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow\",\"datePublished\":\"2026-04-13T13:48:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/\"},\"wordCount\":1029,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/storage.ghost.io\\\/c\\\/ae\\\/f4\\\/aef4d625-32a2-417b-86f4-22c70a9b47a1\\\/content\\\/images\\\/2026\\\/04\\\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png\",\"articleSection\":[\"Posts\"],\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/\",\"url\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/\",\"name\":\"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow - Dev95\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/storage.ghost.io\\\/c\\\/ae\\\/f4\\\/aef4d625-32a2-417b-86f4-22c70a9b47a1\\\/content\\\/images\\\/2026\\\/04\\\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png\",\"datePublished\":\"2026-04-13T13:48:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#primaryimage\",\"url\":\"https:\\\/\\\/storage.ghost.io\\\/c\\\/ae\\\/f4\\\/aef4d625-32a2-417b-86f4-22c70a9b47a1\\\/content\\\/images\\\/2026\\\/04\\\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png\",\"contentUrl\":\"https:\\\/\\\/storage.ghost.io\\\/c\\\/ae\\\/f4\\\/aef4d625-32a2-417b-86f4-22c70a9b47a1\\\/content\\\/images\\\/2026\\\/04\\\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dev95.site\\\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dev95.site\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#website\",\"url\":\"https:\\\/\\\/dev95.site\\\/\",\"name\":\"Dev95\",\"description\":\"A comprehensive platform for data and knowledge, delivering reliable content that meets the aspirations of readers and enthusiasts.\",\"publisher\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dev95.site\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#organization\",\"name\":\"Dev95\",\"url\":\"https:\\\/\\\/dev95.site\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/rbrrbr-6.png?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/rbrrbr-6.png?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"Dev95\"},\"image\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/person\\\/b807805ffe2916206b04d0938bce0298\",\"name\":\"dev95\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g\",\"caption\":\"dev95\"},\"url\":\"https:\\\/\\\/dev95.site\\\/ar\\\/author\\\/mohammad\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow - Dev95","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dev95.site\/ar\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/","og_locale":"ar_AR","og_type":"article","og_title":"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow - Dev95","og_description":"Most developers never question where their CLI tools come from. You run brew install swiftlint, it works, and you move on. But in teams of any size, the question &#8220;which version of SwiftLint are you running?&#8221; surfaces regularly. Someone upgradesRead more &gt;&gt;&gt;","og_url":"https:\/\/dev95.site\/ar\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/","og_site_name":"Dev95","article_published_time":"2026-04-13T13:48:34+00:00","og_image":[{"url":"https:\/\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png","type":"","width":"","height":""}],"author":"dev95","twitter_card":"summary_large_image","twitter_misc":{"\u0643\u064f\u062a\u0628 \u0628\u0648\u0627\u0633\u0637\u0629":"dev95","\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631":"6 \u062f\u0642\u0627\u0626\u0642"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#article","isPartOf":{"@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/"},"author":{"name":"dev95","@id":"https:\/\/dev95.site\/#\/schema\/person\/b807805ffe2916206b04d0938bce0298"},"headline":"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow","datePublished":"2026-04-13T13:48:34+00:00","mainEntityOfPage":{"@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/"},"wordCount":1029,"commentCount":0,"publisher":{"@id":"https:\/\/dev95.site\/#organization"},"image":{"@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#primaryimage"},"thumbnailUrl":"https:\/\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png","articleSection":["Posts"],"inLanguage":"ar","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/","url":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/","name":"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow - Dev95","isPartOf":{"@id":"https:\/\/dev95.site\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#primaryimage"},"image":{"@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#primaryimage"},"thumbnailUrl":"https:\/\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png","datePublished":"2026-04-13T13:48:34+00:00","breadcrumb":{"@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/"]}]},{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#primaryimage","url":"https:\/\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png","contentUrl":"https:\/\/storage.ghost.io\/c\/ae\/f4\/aef4d625-32a2-417b-86f4-22c70a9b47a1\/content\/images\/2026\/04\/ChatGPT-Image-Apr-15--2026--09_15_42-AM.png"},{"@type":"BreadcrumbList","@id":"https:\/\/dev95.site\/luca-a-decentralized-tool-and-skills-manager-for-the-ai-augmented-developer-workflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dev95.site\/"},{"@type":"ListItem","position":2,"name":"Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow"}]},{"@type":"WebSite","@id":"https:\/\/dev95.site\/#website","url":"https:\/\/dev95.site\/","name":"Dev95","description":"A comprehensive platform for data and knowledge, delivering reliable content that meets the aspirations of readers and enthusiasts.","publisher":{"@id":"https:\/\/dev95.site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dev95.site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/dev95.site\/#organization","name":"Dev95","url":"https:\/\/dev95.site\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/dev95.site\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/07\/rbrrbr-6.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/07\/rbrrbr-6.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Dev95"},"image":{"@id":"https:\/\/dev95.site\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dev95.site\/#\/schema\/person\/b807805ffe2916206b04d0938bce0298","name":"dev95","image":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/secure.gravatar.com\/avatar\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g","caption":"dev95"},"url":"https:\/\/dev95.site\/ar\/author\/mohammad\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/posts\/1894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/comments?post=1894"}],"version-history":[{"count":0,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/posts\/1894\/revisions"}],"wp:attachment":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/media?parent=1894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/categories?post=1894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/tags?post=1894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}