<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    
    <title>GitHub C Daily Trending Repositories</title>
    <description>Daily Trending Repositories of C on GitHub</description>
    
    <pubDate>Wed, 12 Aug 2026 04:27:31 GMT</pubDate>
    <link>https://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>opa334/Dopamine</title>
      <link>https://github.com/opa334/Dopamine</link>
      <description>&lt;p&gt;Dopamine is a semi-untethered jailbreak for iOS 15 to 26(.0.1)&lt;/p&gt;&lt;hr&gt;&lt;img src=&quot;https://github.com/opa334/Dopamine/assets/52459150/ed04dd3e-d879-456d-9aa3-d4ed44819c7e&quot; width=&quot;64&quot; /&gt; 
&lt;h1&gt;Dopamine&lt;/h1&gt; 
&lt;p&gt;A rootless semi-untethered jailbreak for iOS 15.0 - 17.3.1 (arm64e), iOS 15.0 - 18.7.1, 26.0 - 26.0.1 (A12/A13) and iOS 15.0 - 18.7.1 (arm64). More details will follow here soon.&lt;/p&gt; 
&lt;p&gt;Please note that all issues related to version support will be deleted without response.&lt;/p&gt; 
&lt;p&gt;Official website / download: &lt;a href=&quot;https://ellekit.space/dopamine/&quot;&gt;https://ellekit.space/dopamine/&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Crementif/BotW-BetterVR</title>
      <link>https://github.com/Crementif/BotW-BetterVR</link>
      <description>&lt;p&gt;A project aimed at providing a better PC VR mode for BotW using the Cemu emulator&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;&lt;img width=&quot;3840&quot; height=&quot;1037&quot; alt=&quot;BetterVRLogo(1)&quot; src=&quot;https://github.com/user-attachments/assets/4f6d6ce2-daed-4411-a5c4-8c5d288ac921&quot; /&gt;&lt;/h1&gt; 
&lt;p&gt;BetterVR is a VR mod/hook that adds a PC-VR mode for BotW using the Wii U emulator called Cemu.&lt;/p&gt; 
&lt;p&gt;It currently supports the following features:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Fully stereo-rendered with 6DOF, with full roomscale support. No alternated eye rendering is used.&lt;/li&gt; 
 &lt;li&gt;Full hands and arms support. You can deck yourself out in all the fanciest clothes.&lt;/li&gt; 
 &lt;li&gt;Wield weapons, torches and bokoblin arms into combat.&lt;/li&gt; 
 &lt;li&gt;Gestures to equip and throw weapons.&lt;/li&gt; 
 &lt;li&gt;Use motion controls to interact with the world to solve puzzles or start fires.&lt;/li&gt; 
 &lt;li&gt;Large mod compatibility. BetterVR only modifies the code and no game data. Most other mods should be compatible.&lt;/li&gt; 
 &lt;li&gt;Optional third-person mode.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Requirements&lt;/h3&gt; 
&lt;h4&gt;Supported VR headsets:&lt;/h4&gt; 
&lt;p&gt;The app currently utilizes OpenXR, which is supported on all the major headsets (Valve Index, HTC Vive, Oculus Rift, Meta Quest, Windows Mixed Reality etc.). However, controller bindings are currently only provided for Oculus Touch controllers. While more integrated solutions are being found out, there&#39;s probably ways to setup OpenXR mappings through SteamVR or other applications.&lt;/p&gt; 
&lt;h4&gt;Other Requirements:&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;A gaming PC with a CPU that is good at single-threaded workloads (a recent Intel i5 or Ryzen 5 are recommended at least)! The GPU matters a bit, but the CPU is the bottleneck here.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;A legal copy of BotW for the Wii U.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Windows OS. &lt;a href=&quot;https://github.com/Crementif/BotW-BetterVR/issues/18&quot;&gt;It doesn&#39;t work under Linux (even with Wine/Proton) for now&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;A properly set up &lt;a href=&quot;http://cemu.info/&quot;&gt;Cemu&lt;/a&gt; emulator that&#39;s able to run at 60FPS or higher. See &lt;a href=&quot;https://cemu.cfw.guide/&quot;&gt;this guide&lt;/a&gt; for more info.&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Before reporting issues, make sure that you have a WORKING version of the game that can go in-game on your PC before you install this mod!&lt;/strong&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;A recent Cemu version. Only Cemu 2.6 is tested to work.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Current Limitations &amp;amp; Known Issues&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;There&#39;s a small chance that the screen stays black after exiting any menus, which requires restarting the game to continue.&lt;/li&gt; 
 &lt;li&gt;Climbing ladders require jumping up the ladder to go up and you have to look at the ladder.&lt;/li&gt; 
 &lt;li&gt;You can get stuck behind ladders sometimes, especially when you stop moving at the very top of the ladder while climbing down. So keep moving at the start!&lt;/li&gt; 
 &lt;li&gt;It&#39;ll lack some comfort options for now, like a left-handed mode &lt;s&gt;or snap turning&lt;/s&gt; (added).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Mod Installation&lt;/h3&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Tip&lt;/p&gt;
 &lt;p&gt;Meta/Oculus Link has terrible frame interpolation that will make game appear to run much worse while also making the grass and arms glitchy, even while using a cable. Its HIGHLY recommended to use &lt;a href=&quot;https://github.com/alvr-org/ALVR&quot;&gt;ALVR&lt;/a&gt; (free, both wired and wireless), &lt;a href=&quot;https://www.meta.com/en-gb/experiences/virtual-desktop/2017050365004772/&quot;&gt;Virtual Desktop&lt;/a&gt; (paid, wireless, most performant) or &lt;a href=&quot;https://www.meta.com/en-gb/experiences/steam-link/5841245619310585/&quot;&gt;Steam Link&lt;/a&gt; (free, wireless) instead for Meta Quest headsets.&lt;/p&gt; 
&lt;/div&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Download the latest &lt;code&gt;BetterVR_Launcher.exe&lt;/code&gt; release from the &lt;a href=&quot;https://github.com/Crementif/BotW-BetterVR/releases&quot;&gt;Releases&lt;/a&gt; page.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Move &lt;code&gt;BetterVR_Launcher.exe&lt;/code&gt; into the same folder as &lt;code&gt;Cemu.exe&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Modify the general Cemu settings first by launching the &lt;code&gt;Cemu.exe&lt;/code&gt; and looking for the following things.&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Cemu&#39;s window title says your Cemu is version 2.6 or newer.&lt;/li&gt; 
   &lt;li&gt;Breath of the Wild is inside your game list, and lists update &lt;code&gt;V208&lt;/code&gt; in the update column.&lt;/li&gt; 
   &lt;li&gt;Go to &lt;code&gt;Debug&lt;/code&gt; -&amp;gt; &lt;code&gt;Accurate Barriers (Vulkan)&lt;/code&gt; and make sure it is disabled for better performance.&lt;/li&gt; 
   &lt;li&gt;Go to &lt;code&gt;Options&lt;/code&gt; -&amp;gt; &lt;code&gt;General Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Graphics&lt;/code&gt;. Make sure that the Renderer is set to Vulkan, that the correct GPU is selected, and VSync is off. Close the settings window.&lt;/li&gt; 
   &lt;li&gt;Go to &lt;code&gt;Options&lt;/code&gt; -&amp;gt; &lt;code&gt;Graphic Packs&lt;/code&gt; and click the &lt;code&gt;Download Community Graphic Packs&lt;/code&gt; button to make sure that your graphic packs are up to date.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Close Cemu, connect your VR headset to your PC, start Virtual Desktop, SteamVR and and make sure that it has its OpenXR runtime set properly:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;For Virtual Desktop users: &lt;a href=&quot;https://github.com/mbucchia/VirtualDesktop-OpenXR/wiki#download--installation&quot;&gt;https://github.com/mbucchia/VirtualDesktop-OpenXR/wiki#download--installation&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;For SteamVR, ALVR and Meta Quest Link users: &lt;a href=&quot;https://academy.vrex.no/knowledge-base/openxr/&quot;&gt;https://academy.vrex.no/knowledge-base/openxr/&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Run BetterVR by using the &lt;code&gt;BetterVR_Launcher.exe&lt;/code&gt;, then go to &lt;code&gt;Options&lt;/code&gt; -&amp;gt; &lt;code&gt;Graphic packs&lt;/code&gt; -&amp;gt; &lt;code&gt;The Legend of Zelda: Breath of the Wild&lt;/code&gt; and make sure:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;BetterVR&lt;/code&gt; is enabled.&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;Mods&lt;/code&gt; -&amp;gt; &lt;code&gt;FPS++&lt;/code&gt; is enabled. The game will crash without it.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Besides those, there&#39;s some other recommended graphic pack settings to make your game run properly and look better in VR:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;Graphics&lt;/code&gt;: 
    &lt;ul&gt; 
     &lt;li&gt;Set the VR Resolution Multiplier to change the resolution of the game when you&#39;re in VR. The mod is not very GPU intensive, so using a higher multiplier might not cost any performance.&lt;/li&gt; 
     &lt;li&gt;Set the Anti-Aliasing to &lt;code&gt;Nvidia FXAA&lt;/code&gt; or &lt;code&gt;None&lt;/code&gt; (if you are using 2x resolution multiplier or higher).&lt;/li&gt; 
     &lt;li&gt;Use the optional recording mode above the VR Resolution Multiplier to render pixels outside of your VR headset&#39;s field-of-view to fit a 16:9 aspect ratio.&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;FPS++&lt;/code&gt;: Set the FPS limit to at least 120 or 144. Your headset/runtime will still control the actual VR framerate.&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;Enhancements&lt;/code&gt;: Set anisotropic filtering to 16x, and optionally set a Clarity preset to make the colors less washed out.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;[Optional] To avoid some heavy stutters when you first start the game, download the shader caches from &lt;a href=&quot;https://chriztr.github.io/cemu_shader_and_pipeline_caches/&quot;&gt;https://chriztr.github.io/cemu_shader_and_pipeline_caches/&lt;/a&gt; and follow the &lt;code&gt;How to install the caches&lt;/code&gt; section on that page.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Double click the game in Cemu&#39;s game list while your VR headset is turned on and connected. If things went correctly, you should now be playing the game in VR!&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Use the in-game BetterVR menu to see the BetterVR settings and controls guide (hold the X or equivalent button on your left VR controller, or long press the Menu button on your Xbox controller).&lt;br /&gt; In the settings you can also enable an option to immediately start the game when you start the &lt;code&gt;BetterVR_Launcher.exe&lt;/code&gt;. You can also add this executable to Virtual Desktop, SteamVR etc. as a non-official Steam game.&lt;/p&gt; 
&lt;h4&gt;Troubleshooting&lt;/h4&gt; 
&lt;p&gt;Here&#39;s some steps to help you debug issues when the game fails to launch:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Verify that you&#39;ve got a working game copy. Use Cemu.exe and launch the game normally. If you can load the game normally, it should work.&lt;/li&gt; 
 &lt;li&gt;Make sure that if you&#39;re using a laptop, both your integrated graphics card and your dedicated graphics card drivers are updated. Make sure that its also plugged into a wall outlet and that its NOT using a power saving setting.&lt;/li&gt; 
 &lt;li&gt;Unfortunately, some older AMD GPUs might have issues. See contact options below to help us squash these.&lt;/li&gt; 
 &lt;li&gt;Uninstall any Vulkan overlays or layers that might cause issues. Programs like Overwolf, RTSS and other things CAN cause issues, though certainly not guaranteed.&lt;/li&gt; 
 &lt;li&gt;Go over all the installation steps one more time and make sure that you didn&#39;t diverge from any of the steps. If you&#39;re seeing a green screen, it means that the Vulkan layer isn&#39;t enabled. This is likely due to using OpenGL in Cemu&#39;s settings.&lt;/li&gt; 
 &lt;li&gt;If Cemu shows a Vulkan error like -13, these issues are likely GPU driver related.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;If none of these steps helped, check the BotW support channel on the &lt;a href=&quot;https://discord.com/invite/flat2vr&quot;&gt;Flat2VR Discord server&lt;/a&gt; (recommended) or make a GitHub issue. Me and other people will try to help you in our spare time.&lt;/p&gt; 
&lt;h3&gt;Controls&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;You can now view the controls in-game now by opening the BetterVR menu by holding the X button on your left VR controller.&lt;/strong&gt; With Valve Index Controllers you can use the A button. For Xbox/Playstation etc. controllers, long press the Start button and use the mouse for changing settings.&lt;/p&gt; 
&lt;p&gt;You can find the controller image here (click to enlarge):&lt;br /&gt; &lt;a href=&quot;https://raw.githubusercontent.com/Crementif/BotW-BetterVR/refs/heads/main/resources/controller_help.png&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/Crementif/BotW-BetterVR/refs/heads/main/resources/controller_help.png&quot; width=&quot;540&quot; /&gt; &lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Technical Overview&lt;/h3&gt; 
&lt;h4&gt;Rendering an image to the VR headset&lt;/h4&gt; 
&lt;p&gt;This mod ships with no game files, so you might ask how it works.&lt;/p&gt; 
&lt;p&gt;The game starts with the BetterVR Vulkan layer enabled. The Vulkan layer, which comes in the form of the .DLL file, is then able to intercept the Vulkan commands that Cemu submits so that we can get the final frame to render to the VR headset and draw the debugging tools.&lt;/p&gt; 
&lt;p&gt;A technical hurdle here was that due to OpenXR frameworks not being designed to be instantiated inside something that is intercepting Vulkan commands, this mod utilizes Vulkan &amp;lt;-&amp;gt; D3D12 interop to pipe the rendered output from Vulkan to a D3D12 application that&#39;s &lt;em&gt;just&lt;/em&gt; used for rendering the captured image to the VR headset. That way the OpenXR framework is just interacting with root-level rendering handles, instead of what&#39;d occur in the Vulkan hook.&lt;/p&gt; 
&lt;p&gt;Using an external DLL originally made a lot of sense when Cemu wasn&#39;t open-sourced (though it also makes it slightly less tied to a specific emulator or version of Cemu, and prevents a VR specific version of Cemu that&#39;ll quickly become outdated). In hindsight, it probably would&#39;ve saved a lot of time spent trying to get the mod to work without using D3D12.&lt;/p&gt; 
&lt;h4&gt;How to make it VR&lt;/h4&gt; 
&lt;p&gt;However, while drawing the game&#39;s rendered output to the VR headset is one thing, getting a native game to render a 3D image is a whole other thing. For that, the mod has a bunch of PowerPC assembly patches (the Wii U has a PowerPC CPU) to modify the game&#39;s code. For example, an important patch is to make it so that the game renders two frames before updating all of the game&#39;s systems and objects that are on-screen. Then, among many other patches, you&#39;ll also find patches that change the camera or player model positions each frame, or trigger an attack.&lt;/p&gt; 
&lt;p&gt;Usually the assembly code will call into the C++ code if it wants to do complicated algebra to specify where the camera or Link&#39;s hands should be for example. And some assembly patches use a clearing instruction for the Wii U&#39;s GPU which, after being translated, will signal the Vulkan hook to send the almost-finished final game image to the D3D12 code where it can present it inside the VR headset.&lt;/p&gt; 
&lt;p&gt;Additionally, since combat is a large part of the original game, there&#39;s also a new swing and stab detection system that allows the player to cut trees and enemies down when they execute proper swings and stabbing motions. This prevents a situation where weapon hitboxes are abused to instantly stagger an enemy. There&#39;s plans for an even deeper integration, but as of today that&#39;s about it. This is fully optional since the mod still features an attack button, but the latter will offer a lot more immersion.&lt;/p&gt; 
&lt;p&gt;Understanding how the game works, finding and patching the exact parts inside the game&#39;s executable is by far the most difficult part and it took thousands of hours of reverse-engineering. Its without a doubt the most time consuming task of this VR mod, especially since this game uses a custom C++ engine of which is not much known about other then the good work of the (largely unfinished, but still very helpful) decompilation project.&lt;/p&gt; 
&lt;p&gt;If you want to know more about the technical details, feel free to ask in the BetterVR related channels in the &lt;a href=&quot;https://discord.com/invite/flat2vr&quot;&gt;Flat2VR Discord server&lt;/a&gt;. There&#39;s enough that was skipped over or left out in this explanation.&lt;/p&gt; 
&lt;h3&gt;Build Instructions (For Developers)&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Install the latest Vulkan SDK from &lt;a href=&quot;https://vulkan.lunarg.com/sdk/home#windows&quot;&gt;https://vulkan.lunarg.com/sdk/home#windows&lt;/a&gt; and make sure that VULKAN_SDK was added to your environment variables.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Install &lt;a href=&quot;https://github.com/microsoft/vcpkg&quot;&gt;vcpkg&lt;/a&gt; (make sure to run the bootstrap and install commands it mentions) and use the following command to install the required dependencies: &lt;code&gt;vcpkg install openxr-loader:x64-windows-static-md glm:x64-windows-static-md vulkan-headers:x64-windows-static-md imgui:x64-windows-static-md&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Change the CMakeUserPresets.json file to contain the directory where you&#39;ve stored vcpkg. Its currently hardcoded. If you want to use &lt;a href=&quot;https://developers.meta.com/horizon/downloads/package/meta-xr-simulator-windows/&quot;&gt;Meta XR Simulator&lt;/a&gt; (which is quite helpful during debugging), you should change its path now too. &lt;strong&gt;Meta XR Simulator doesn&#39;t work unless you edit the &lt;code&gt;[install folder]/config/sim_core_configuration.json&lt;/code&gt; file from &lt;code&gt; &quot;disable_interop&quot;: false,&lt;/code&gt; to &lt;code&gt; &quot;disable_interop&quot;: true,&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;[Optional] Download and extract a new Cemu installation to the Cemu folder that&#39;s included. This step is technically not required, but it&#39;s the default install location and makes debugging much easier.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Use Visual Studio (Recommended) or Clion to open the CMake project. Make sure that it&#39;s compiling a x64 build.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;For direct Visual Studio debugging, its recommended that instead of launching the BetterVR_Launcher, you set-up a launch.vs.json that launches Cemu.exe with the .dll loaded. Once the CMake project is open in VS (make sure its not ran as admin), go to &lt;code&gt;Debug&lt;/code&gt;-&amp;gt;&lt;code&gt;Debug and Launch Settings for BetterVR_Layer&lt;/code&gt;. With that open, copy the configuration from &lt;a href=&quot;https://raw.githubusercontent.com/Crementif/BotW-BetterVR/main/resources/launch.vs.json&quot;&gt;&lt;code&gt;launch.vs.json&lt;/code&gt;&lt;/a&gt; and replace the placeholder paths.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;If step 6 doesn&#39;t work, you can also just launch the BetterVR_Project by debugging the &lt;code&gt;BetterVR_Launcher&lt;/code&gt; target (make sure to pick the Install option). You might have to manually attach or install a multi-process debugging extension.&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Credits&lt;/h3&gt; 
&lt;p&gt;Crementif: Main Developer&lt;br /&gt; Acudofy: Sword &amp;amp; stab analysis system&lt;br /&gt; Holydh: Developed the input systems&lt;br /&gt; leoetlino: For the &lt;a href=&quot;https://github.com/zeldaret/botw&quot;&gt;BotW Decomp project&lt;/a&gt;, which was very useful&lt;br /&gt; Exzap: Technical support and optimization help&lt;br /&gt; Mako Marci: Edited the trailer, made the logo and controller guide&lt;br /&gt; Tim, Mako Marci, Solarwolf07, Elliott Tate &amp;amp; Derra: Helped with testing, recording, feedback and support&lt;/p&gt; 
&lt;h3&gt;Licenses&lt;/h3&gt; 
&lt;p&gt;This project is licensed under the MIT license. BetterVR also uses the following libraries:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/Joshua-Ashton/vkroots/raw/main/LICENSES/MIT.txt&quot;&gt;vkroots (MIT licensed)&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ocornut/imgui/raw/master/LICENSE.txt&quot;&gt;imgui (MIT licensed)&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/epezent/implot/raw/master/LICENSE&quot;&gt;ImPlot (MIT licensed)&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>nothings/stb</title>
      <link>https://github.com/nothings/stb</link>
      <description>&lt;p&gt;stb single-file public domain libraries for C/C++&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;stb&lt;/h1&gt; 
&lt;p&gt;single-file public domain (or MIT licensed) libraries for C/C++&lt;/p&gt; 
&lt;h1&gt;This project discusses security-relevant bugs in public in Github Issues and Pull Requests, and it may take significant time for security fixes to be implemented or merged. If this poses an unreasonable risk to your project, do not use stb libraries.&lt;/h1&gt; 
&lt;p&gt;Noteworthy:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;image loader: &lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_image.h&quot;&gt;stb_image.h&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;image writer: &lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h&quot;&gt;stb_image_write.h&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;image resizer: &lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_image_resize2.h&quot;&gt;stb_image_resize2.h&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;font text rasterizer: &lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_truetype.h&quot;&gt;stb_truetype.h&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;typesafe containers: &lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_ds.h&quot;&gt;stb_ds.h&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Most libraries by stb, except: stb_dxt by Fabian &quot;ryg&quot; Giesen, original stb_image_resize by Jorge L. &quot;VinoBS&quot; Rodriguez, and stb_image_resize2 and stb_sprintf by Jeff Roberts.&lt;/p&gt; 
&lt;p&gt;&lt;a name=&quot;stb_libs&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;library&lt;/th&gt; 
   &lt;th&gt;latest version&lt;/th&gt; 
   &lt;th&gt;category&lt;/th&gt; 
   &lt;th&gt;LoC&lt;/th&gt; 
   &lt;th&gt;description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_vorbis.c&quot;&gt;stb_vorbis.c&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.22&lt;/td&gt; 
   &lt;td&gt;audio&lt;/td&gt; 
   &lt;td&gt;5584&lt;/td&gt; 
   &lt;td&gt;decode ogg vorbis files from file/memory to float/16-bit signed output&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_hexwave.h&quot;&gt;stb_hexwave.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.5&lt;/td&gt; 
   &lt;td&gt;audio&lt;/td&gt; 
   &lt;td&gt;680&lt;/td&gt; 
   &lt;td&gt;audio waveform synthesizer&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_image.h&quot;&gt;stb_image.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;2.30&lt;/td&gt; 
   &lt;td&gt;graphics&lt;/td&gt; 
   &lt;td&gt;7988&lt;/td&gt; 
   &lt;td&gt;image loading/decoding from file/memory: JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_truetype.h&quot;&gt;stb_truetype.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.26&lt;/td&gt; 
   &lt;td&gt;graphics&lt;/td&gt; 
   &lt;td&gt;5079&lt;/td&gt; 
   &lt;td&gt;parse, decode, and rasterize characters from truetype fonts&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h&quot;&gt;stb_image_write.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.16&lt;/td&gt; 
   &lt;td&gt;graphics&lt;/td&gt; 
   &lt;td&gt;1724&lt;/td&gt; 
   &lt;td&gt;image writing to disk: PNG, TGA, BMP&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_image_resize2.h&quot;&gt;stb_image_resize2.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;2.18b&lt;/td&gt; 
   &lt;td&gt;graphics&lt;/td&gt; 
   &lt;td&gt;10679&lt;/td&gt; 
   &lt;td&gt;resize images larger/smaller with good quality&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_rect_pack.h&quot;&gt;stb_rect_pack.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.01&lt;/td&gt; 
   &lt;td&gt;graphics&lt;/td&gt; 
   &lt;td&gt;623&lt;/td&gt; 
   &lt;td&gt;simple 2D rectangle packer with decent quality&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_perlin.h&quot;&gt;stb_perlin.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.5&lt;/td&gt; 
   &lt;td&gt;graphics&lt;/td&gt; 
   &lt;td&gt;428&lt;/td&gt; 
   &lt;td&gt;perlin&#39;s revised simplex noise w/ different seeds&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_ds.h&quot;&gt;stb_ds.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.67&lt;/td&gt; 
   &lt;td&gt;utility&lt;/td&gt; 
   &lt;td&gt;1895&lt;/td&gt; 
   &lt;td&gt;typesafe dynamic array and hash tables for C, will compile in C++&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_sprintf.h&quot;&gt;stb_sprintf.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.10&lt;/td&gt; 
   &lt;td&gt;utility&lt;/td&gt; 
   &lt;td&gt;1906&lt;/td&gt; 
   &lt;td&gt;fast sprintf, snprintf for C/C++&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_textedit.h&quot;&gt;stb_textedit.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.14&lt;/td&gt; 
   &lt;td&gt;user&amp;nbsp;interface&lt;/td&gt; 
   &lt;td&gt;1429&lt;/td&gt; 
   &lt;td&gt;guts of a text editor for games etc implementing them from scratch&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_voxel_render.h&quot;&gt;stb_voxel_render.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.89&lt;/td&gt; 
   &lt;td&gt;3D&amp;nbsp;graphics&lt;/td&gt; 
   &lt;td&gt;3807&lt;/td&gt; 
   &lt;td&gt;Minecraft-esque voxel rendering &quot;engine&quot; with many more features&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_dxt.h&quot;&gt;stb_dxt.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.12&lt;/td&gt; 
   &lt;td&gt;3D&amp;nbsp;graphics&lt;/td&gt; 
   &lt;td&gt;719&lt;/td&gt; 
   &lt;td&gt;Fabian &quot;ryg&quot; Giesen&#39;s real-time DXT compressor&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_easy_font.h&quot;&gt;stb_easy_font.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;1.1&lt;/td&gt; 
   &lt;td&gt;3D&amp;nbsp;graphics&lt;/td&gt; 
   &lt;td&gt;305&lt;/td&gt; 
   &lt;td&gt;quick-and-dirty easy-to-deploy bitmap font for printing frame rate, etc&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_tilemap_editor.h&quot;&gt;stb_tilemap_editor.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.42&lt;/td&gt; 
   &lt;td&gt;game&amp;nbsp;dev&lt;/td&gt; 
   &lt;td&gt;4187&lt;/td&gt; 
   &lt;td&gt;embeddable tilemap editor&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_herringbone_wang_tile.h&quot;&gt;stb_herringbone_wa...&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.7&lt;/td&gt; 
   &lt;td&gt;game&amp;nbsp;dev&lt;/td&gt; 
   &lt;td&gt;1221&lt;/td&gt; 
   &lt;td&gt;herringbone Wang tile map generator&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_c_lexer.h&quot;&gt;stb_c_lexer.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.12&lt;/td&gt; 
   &lt;td&gt;parsing&lt;/td&gt; 
   &lt;td&gt;941&lt;/td&gt; 
   &lt;td&gt;simplify writing parsers for C-like languages&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_divide.h&quot;&gt;stb_divide.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.94&lt;/td&gt; 
   &lt;td&gt;math&lt;/td&gt; 
   &lt;td&gt;433&lt;/td&gt; 
   &lt;td&gt;more useful 32-bit modulus e.g. &quot;euclidean divide&quot;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_connected_components.h&quot;&gt;stb_connected_comp...&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.96&lt;/td&gt; 
   &lt;td&gt;misc&lt;/td&gt; 
   &lt;td&gt;1049&lt;/td&gt; 
   &lt;td&gt;incrementally compute reachability on grids&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_leakcheck.h&quot;&gt;stb_leakcheck.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.6&lt;/td&gt; 
   &lt;td&gt;misc&lt;/td&gt; 
   &lt;td&gt;194&lt;/td&gt; 
   &lt;td&gt;quick-and-dirty malloc/free leak-checking&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/nothings/stb/master/stb_include.h&quot;&gt;stb_include.h&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.02&lt;/td&gt; 
   &lt;td&gt;misc&lt;/td&gt; 
   &lt;td&gt;295&lt;/td&gt; 
   &lt;td&gt;implement recursive #include support, particularly for GLSL&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Total libraries: 21 Total lines of C code: 51166&lt;/p&gt; 
&lt;h2&gt;FAQ&lt;/h2&gt; 
&lt;h4&gt;What&#39;s the license?&lt;/h4&gt; 
&lt;p&gt;These libraries are in the public domain. You can do anything you want with them. You have no legal obligation to do anything else, although I appreciate attribution.&lt;/p&gt; 
&lt;p&gt;They are also licensed under the MIT open source license, if you have lawyers who are unhappy with public domain. Every source file includes an explicit dual-license for you to choose from.&lt;/p&gt; 
&lt;h4&gt;How do I use these libraries?&lt;/h4&gt; 
&lt;p&gt;The idea behind single-header file libraries is that they&#39;re easy to distribute and deploy because all the code is contained in a single file. By default, the .h files in here act as their own header files, i.e. they declare the functions contained in the file but don&#39;t actually result in any code getting compiled.&lt;/p&gt; 
&lt;p&gt;So in addition, you should select &lt;em&gt;exactly one&lt;/em&gt; C/C++ source file that actually instantiates the code, preferably a file you&#39;re not editing frequently. This file should define a specific macro (this is documented per-library) to actually enable the function definitions. For example, to use stb_image, you should have exactly one C/C++ file that doesn&#39;t include stb_image.h regularly, but instead does&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;#define STB_IMAGE_IMPLEMENTATION
#include &quot;stb_image.h&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The right macro to define is pointed out right at the top of each of these libraries.&lt;/p&gt; 
&lt;h4&gt;&lt;a name=&quot;other_libs&quot;&gt;&lt;/a&gt; Are there other single-file public-domain/open source libraries with minimal dependencies out there?&lt;/h4&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/nothings/single_file_libs&quot;&gt;Yes.&lt;/a&gt;&lt;/p&gt; 
&lt;h4&gt;If I wrap an stb library in a new library, does the new library have to be public domain/MIT?&lt;/h4&gt; 
&lt;p&gt;No, because it&#39;s public domain you can freely relicense it to whatever license your new library wants to be.&lt;/p&gt; 
&lt;h4&gt;What&#39;s the deal with SSE support in GCC-based compilers?&lt;/h4&gt; 
&lt;p&gt;stb_image will either use SSE2 (if you compile with -msse2) or will not use any SIMD at all, rather than trying to detect the processor at runtime and handle it correctly. As I understand it, the approved path in GCC for runtime-detection require you to use multiple source files, one for each CPU configuration. Because stb_image is a header-file library that compiles in only one source file, there&#39;s no approved way to build both an SSE-enabled and a non-SSE-enabled variation.&lt;/p&gt; 
&lt;p&gt;While we&#39;ve tried to work around it, we&#39;ve had multiple issues over the years due to specific versions of gcc breaking what we&#39;re doing, so we&#39;ve given up on it. See &lt;a href=&quot;https://github.com/nothings/stb/issues/280&quot;&gt;https://github.com/nothings/stb/issues/280&lt;/a&gt; and &lt;a href=&quot;https://github.com/nothings/stb/issues/410&quot;&gt;https://github.com/nothings/stb/issues/410&lt;/a&gt; for examples.&lt;/p&gt; 
&lt;h4&gt;Some of these libraries seem redundant to existing open source libraries. Are they better somehow?&lt;/h4&gt; 
&lt;p&gt;Generally they&#39;re only better in that they&#39;re easier to integrate, easier to use, and easier to release (single file; good API; no attribution requirement). They may be less featureful, slower, and/or use more memory. If you&#39;re already using an equivalent library, there&#39;s probably no good reason to switch.&lt;/p&gt; 
&lt;h4&gt;Can I link directly to the table of stb libraries?&lt;/h4&gt; 
&lt;p&gt;You can use &lt;a href=&quot;https://github.com/nothings/stb#stb_libs&quot;&gt;this URL&lt;/a&gt; to link directly to that list.&lt;/p&gt; 
&lt;h4&gt;Why do you list &quot;lines of code&quot;? It&#39;s a terrible metric.&lt;/h4&gt; 
&lt;p&gt;Just to give you some idea of the internal complexity of the library, to help you manage your expectations, or to let you know what you&#39;re getting into. While not all the libraries are written in the same style, they&#39;re certainly similar styles, and so comparisons between the libraries are probably still meaningful.&lt;/p&gt; 
&lt;p&gt;Note though that the lines do include both the implementation, the part that corresponds to a header file, and the documentation.&lt;/p&gt; 
&lt;h4&gt;Why single-file headers?&lt;/h4&gt; 
&lt;p&gt;Windows doesn&#39;t have standard directories where libraries live. That makes deploying libraries in Windows a lot more painful than open source developers on Unix-derivates generally realize. (It also makes library dependencies a lot worse in Windows.)&lt;/p&gt; 
&lt;p&gt;There&#39;s also a common problem in Windows where a library was built against a different version of the runtime library, which causes link conflicts and confusion. Shipping the libs as headers means you normally just compile them straight into your project without making libraries, thus sidestepping that problem.&lt;/p&gt; 
&lt;p&gt;Making them a single file makes it very easy to just drop them into a project that needs them. (Of course you can still put them in a proper shared library tree if you want.)&lt;/p&gt; 
&lt;p&gt;Why not two files, one a header and one an implementation? The difference between 10 files and 9 files is not a big deal, but the difference between 2 files and 1 file is a big deal. You don&#39;t need to zip or tar the files up, you don&#39;t have to remember to attach &lt;em&gt;two&lt;/em&gt; files, etc.&lt;/p&gt; 
&lt;h4&gt;Why &quot;stb&quot;? Is this something to do with Set-Top Boxes?&lt;/h4&gt; 
&lt;p&gt;No, they are just the initials for my name, Sean T. Barrett. This was not chosen out of egomania, but as a moderately sane way of namespacing the filenames and source function names.&lt;/p&gt; 
&lt;h4&gt;Will you add more image types to stb_image.h?&lt;/h4&gt; 
&lt;p&gt;No. As stb_image use has grown, it has become more important for us to focus on security of the codebase. Adding new image formats increases the amount of code we need to secure, so it is no longer worth adding new formats.&lt;/p&gt; 
&lt;h4&gt;Do you have any advice on how to create my own single-file library?&lt;/h4&gt; 
&lt;p&gt;Yes. &lt;a href=&quot;https://github.com/nothings/stb/raw/master/docs/stb_howto.txt&quot;&gt;https://github.com/nothings/stb/blob/master/docs/stb_howto.txt&lt;/a&gt;&lt;/p&gt; 
&lt;h4&gt;Why public domain?&lt;/h4&gt; 
&lt;p&gt;I prefer it over GPL, LGPL, BSD, zlib, etc. for many reasons. Some of them are listed here: &lt;a href=&quot;https://github.com/nothings/stb/raw/master/docs/why_public_domain.md&quot;&gt;https://github.com/nothings/stb/blob/master/docs/why_public_domain.md&lt;/a&gt;&lt;/p&gt; 
&lt;h4&gt;Why C?&lt;/h4&gt; 
&lt;p&gt;Primarily, because I use C, not C++. But it does also make it easier for other people to use them from other languages.&lt;/p&gt; 
&lt;h4&gt;Why not C99? stdint.h, declare-anywhere, etc.&lt;/h4&gt; 
&lt;p&gt;I still use MSVC 6 (1998) as my IDE because it has better human factors for me than later versions of MSVC.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>SchedMD/slurm</title>
      <link>https://github.com/SchedMD/slurm</link>
      <description>&lt;p&gt;Slurm: A Highly Scalable Workload Manager&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Slurm Workload Manager&lt;/h1&gt; 
&lt;p&gt;This is the Slurm Workload Manager. Slurm is an open-source cluster resource management and job scheduling system that strives to be simple, scalable, portable, fault-tolerant, and interconnect agnostic. Slurm currently has been tested only under Linux.&lt;/p&gt; 
&lt;p&gt;As a cluster resource manager, Slurm provides three key functions. First, it allocates exclusive and/or non-exclusive access to resources (compute nodes) to users for some duration of time so they can perform work. Second, it provides a framework for starting, executing, and monitoring work (normally a parallel job) on the set of allocated nodes. Finally, it arbitrates conflicting requests for resources by managing a queue of pending work.&lt;/p&gt; 
&lt;h1&gt;NOTES FOR GITHUB DEVELOPERS&lt;/h1&gt; 
&lt;p&gt;The official issue tracker for Slurm is at&lt;/p&gt; 
&lt;p&gt;: &lt;a href=&quot;https://support.schedmd.com/&quot;&gt;https://support.schedmd.com/&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;We welcome code contributions and patches. Please see &lt;a href=&quot;https://raw.githubusercontent.com/SchedMD/slurm/master/CONTRIBUTING.md&quot;&gt;the contributing guidelines&lt;/a&gt; for further details.&lt;/p&gt; 
&lt;h1&gt;SOURCE DISTRIBUTION HIERARCHY&lt;/h1&gt; 
&lt;p&gt;The top-level distribution directory contains this README as well as other high-level documentation files, and the scripts used to configure and build Slurm (see INSTALL). Subdirectories contain the source-code for Slurm as well as a test suite and further documentation. A quick description of the subdirectories of the Slurm distribution follows:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;src/ [ Slurm source ]&lt;/p&gt; 
 &lt;p&gt;: Slurm source code is further organized into self explanatory subdirectories such as src/api, src/slurmctld, etc.&lt;/p&gt; 
 &lt;p&gt;doc/ [ Slurm documentation ]&lt;/p&gt; 
 &lt;p&gt;: The documentation directory contains some latex, html, and ascii text papers, READMEs, and guides. Manual pages for the Slurm commands and configuration files are also under the doc/ directory.&lt;/p&gt; 
 &lt;p&gt;etc/ [ Slurm configuration ]&lt;/p&gt; 
 &lt;p&gt;: The etc/ directory contains a sample config file, as well as some scripts useful for running Slurm.&lt;/p&gt; 
 &lt;p&gt;slurm/ [ Slurm include files ]&lt;/p&gt; 
 &lt;p&gt;: This directory contains installed include files, such as slurm.h and slurm_errno.h, needed for compiling against the Slurm API.&lt;/p&gt; 
 &lt;p&gt;testsuite/ [ Slurm test suite ]&lt;/p&gt; 
 &lt;p&gt;: The testsuite directory contains an extensive collection of tests written for Check, Expect and Pytest.&lt;/p&gt; 
 &lt;p&gt;auxdir/ [ autotools directory ]&lt;/p&gt; 
 &lt;p&gt;: Directory for autotools scripts and files used to configure and build Slurm&lt;/p&gt; 
 &lt;p&gt;contribs/ [ helpful tools outside of Slurm proper ]&lt;/p&gt; 
 &lt;p&gt;: Directory for anything that is outside of slurm proper such as a different api or such. To have this build you need to do a make contrib/install-contrib.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h1&gt;COMPILING AND INSTALLING THE DISTRIBUTION&lt;/h1&gt; 
&lt;p&gt;Please see the instructions at&lt;/p&gt; 
&lt;p&gt;: &lt;a href=&quot;https://slurm.schedmd.com/quickstart_admin.html&quot;&gt;https://slurm.schedmd.com/quickstart_admin.html&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Extensive documentation is available from our home page at&lt;/p&gt; 
&lt;p&gt;: &lt;a href=&quot;https://slurm.schedmd.com/slurm.html&quot;&gt;https://slurm.schedmd.com/slurm.html&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;LEGAL&lt;/h1&gt; 
&lt;p&gt;Slurm is provided &quot;as is&quot; and with no warranty. This software is distributed under the GNU General Public License, please see the files COPYING, DISCLAIMER, and LICENSE.OpenSSL for details.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>lz4/lz4</title>
      <link>https://github.com/lz4/lz4</link>
      <description>&lt;p&gt;Extremely Fast Compression algorithm&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;LZ4 - Extremely fast compression&lt;/h1&gt; 
&lt;p&gt;LZ4 is lossless compression algorithm, providing compression speed &amp;gt; 500 MB/s per core, scalable with multi-cores CPU. It features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems.&lt;/p&gt; 
&lt;p&gt;Speed can be tuned dynamically, selecting an &quot;acceleration&quot; factor which trades compression ratio for faster speed. On the other end, a high compression derivative, LZ4_HC, is also provided, trading CPU time for improved compression ratio. All versions feature the same decompression speed.&lt;/p&gt; 
&lt;p&gt;LZ4 is also compatible with &lt;a href=&quot;https://github.com/facebook/zstd#the-case-for-small-data-compression&quot;&gt;dictionary compression&lt;/a&gt;, both at &lt;a href=&quot;https://github.com/lz4/lz4/raw/v1.8.3/lib/lz4frame.h#L481&quot;&gt;API&lt;/a&gt; and &lt;a href=&quot;https://github.com/lz4/lz4/raw/v1.8.3/programs/lz4.1.md#operation-modifiers&quot;&gt;CLI&lt;/a&gt; levels. It can ingest any input file as dictionary, though only the final 64KB are used. This capability can be combined with the &lt;a href=&quot;https://github.com/facebook/zstd/raw/v1.3.5/programs/zstd.1.md#dictionary-builder&quot;&gt;Zstandard Dictionary Builder&lt;/a&gt;, in order to drastically improve compression performance on small files.&lt;/p&gt; 
&lt;p&gt;LZ4 library is provided as open-source software using BSD 2-Clause license.&lt;/p&gt; 
&lt;h2&gt;Benchmarks&lt;/h2&gt; 
&lt;p&gt;The benchmark uses &lt;a href=&quot;https://github.com/inikep/lzbench&quot;&gt;lzbench&lt;/a&gt;, from @inikep compiled with GCC v8.2.0 on Linux 64-bits (Ubuntu 4.18.0-17). The reference system uses a Core i7-9700K CPU @ 4.9GHz (w/ turbo boost). Benchmark evaluates the compression of reference &lt;a href=&quot;http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia&quot;&gt;Silesia Corpus&lt;/a&gt; in single-thread mode.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Compressor&lt;/th&gt; 
   &lt;th&gt;Factor&lt;/th&gt; 
   &lt;th&gt;Compression&lt;/th&gt; 
   &lt;th&gt;Decompression&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;memcpy&lt;/td&gt; 
   &lt;td&gt;1.000&lt;/td&gt; 
   &lt;td&gt;13700 MB/s&lt;/td&gt; 
   &lt;td&gt;13700 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;LZ4 default (v1.9.0)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;2.101&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;780 MB/s&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;4970 MB/s&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;LZO 2.09&lt;/td&gt; 
   &lt;td&gt;2.108&lt;/td&gt; 
   &lt;td&gt;670 MB/s&lt;/td&gt; 
   &lt;td&gt;860 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;QuickLZ 1.5.0&lt;/td&gt; 
   &lt;td&gt;2.238&lt;/td&gt; 
   &lt;td&gt;575 MB/s&lt;/td&gt; 
   &lt;td&gt;780 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Snappy 1.1.4&lt;/td&gt; 
   &lt;td&gt;2.091&lt;/td&gt; 
   &lt;td&gt;565 MB/s&lt;/td&gt; 
   &lt;td&gt;1950 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;http://www.zstd.net/&quot;&gt;Zstandard&lt;/a&gt; 1.4.0 -1&lt;/td&gt; 
   &lt;td&gt;2.883&lt;/td&gt; 
   &lt;td&gt;515 MB/s&lt;/td&gt; 
   &lt;td&gt;1380 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;LZF v3.6&lt;/td&gt; 
   &lt;td&gt;2.073&lt;/td&gt; 
   &lt;td&gt;415 MB/s&lt;/td&gt; 
   &lt;td&gt;910 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;http://www.zlib.net/&quot;&gt;zlib&lt;/a&gt; deflate 1.2.11 -1&lt;/td&gt; 
   &lt;td&gt;2.730&lt;/td&gt; 
   &lt;td&gt;100 MB/s&lt;/td&gt; 
   &lt;td&gt;415 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;LZ4 HC -9 (v1.9.0)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;2.721&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;41 MB/s&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;4900 MB/s&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;http://www.zlib.net/&quot;&gt;zlib&lt;/a&gt; deflate 1.2.11 -6&lt;/td&gt; 
   &lt;td&gt;3.099&lt;/td&gt; 
   &lt;td&gt;36 MB/s&lt;/td&gt; 
   &lt;td&gt;445 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;make
make install     # this command may require root permissions
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;LZ4&#39;s &lt;code&gt;Makefile&lt;/code&gt; supports standard &lt;a href=&quot;https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html&quot;&gt;Makefile conventions&lt;/a&gt;, including &lt;a href=&quot;https://www.gnu.org/prep/standards/html_node/DESTDIR.html&quot;&gt;staged installs&lt;/a&gt;, &lt;a href=&quot;https://www.gnu.org/prep/standards/html_node/Directory-Variables.html&quot;&gt;redirection&lt;/a&gt;, or &lt;a href=&quot;https://www.gnu.org/prep/standards/html_node/Utilities-in-Makefiles.html&quot;&gt;command redefinition&lt;/a&gt;. It is compatible with parallel builds (&lt;code&gt;-j#&lt;/code&gt;).&lt;/p&gt; 
&lt;h3&gt;Building LZ4 - Using vcpkg&lt;/h3&gt; 
&lt;p&gt;You can download and install LZ4 using the &lt;a href=&quot;https://github.com/Microsoft/vcpkg&quot;&gt;vcpkg&lt;/a&gt; dependency manager:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg.exe install lz4
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The LZ4 port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please &lt;a href=&quot;https://github.com/Microsoft/vcpkg&quot;&gt;create an issue or pull request&lt;/a&gt; on the vcpkg repository.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;The raw LZ4 block compression format is detailed within &lt;a href=&quot;https://raw.githubusercontent.com/lz4/lz4/dev/doc/lz4_Block_format.md&quot;&gt;lz4_Block_format&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Arbitrarily long files or data streams are compressed using multiple blocks, for streaming requirements. These blocks are organized into a frame, defined into &lt;a href=&quot;https://raw.githubusercontent.com/lz4/lz4/dev/doc/lz4_Frame_format.md&quot;&gt;lz4_Frame_format&lt;/a&gt;. Interoperable versions of LZ4 must also respect the frame format.&lt;/p&gt; 
&lt;h2&gt;Other source versions&lt;/h2&gt; 
&lt;p&gt;Beyond the C reference source, many contributors have created versions of lz4 in multiple languages (Java, C#, Python, Perl, Ruby, etc.). A list of known source ports is maintained on the &lt;a href=&quot;http://www.lz4.org&quot;&gt;LZ4 Homepage&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Packaging status&lt;/h3&gt; 
&lt;p&gt;Most distributions are bundled with a package manager which allows easy installation of both the &lt;code&gt;liblz4&lt;/code&gt; library and the &lt;code&gt;lz4&lt;/code&gt; command line interface.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://repology.org/project/lz4/versions&quot;&gt;&lt;img src=&quot;https://repology.org/badge/vertical-allrepos/lz4.svg?columns=4&amp;amp;exclude_unsupported=1&quot; alt=&quot;Packaging status&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Special Thanks&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Takayuki Matsuoka, aka @t-mat, for exceptional first-class support throughout the lifetime of this project&lt;/li&gt; 
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>jqlang/jq</title>
      <link>https://github.com/jqlang/jq</link>
      <description>&lt;p&gt;Command-line JSON processor&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;jq&lt;/h1&gt; 
&lt;p&gt;&lt;code&gt;jq&lt;/code&gt; is a lightweight and flexible command-line JSON processor akin to &lt;code&gt;sed&lt;/code&gt;,&lt;code&gt;awk&lt;/code&gt;,&lt;code&gt;grep&lt;/code&gt;, and friends for JSON data. It&#39;s written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Official Documentation&lt;/strong&gt;: &lt;a href=&quot;https://jqlang.org&quot;&gt;jqlang.org&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Try jq Online&lt;/strong&gt;: &lt;a href=&quot;https://play.jqlang.org&quot;&gt;play.jqlang.org&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;h3&gt;Prebuilt Binaries&lt;/h3&gt; 
&lt;p&gt;Download the latest releases from the &lt;a href=&quot;https://github.com/jqlang/jq/releases&quot;&gt;GitHub release page&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Docker Image&lt;/h3&gt; 
&lt;p&gt;Pull the &lt;a href=&quot;https://github.com/jqlang/jq/pkgs/container/jq&quot;&gt;jq image&lt;/a&gt; to start quickly with Docker.&lt;/p&gt; 
&lt;h4&gt;Run with Docker&lt;/h4&gt; 
&lt;h5&gt;Example: Extracting the version from a &lt;code&gt;package.json&lt;/code&gt; file&lt;/h5&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run --rm -i ghcr.io/jqlang/jq:latest &amp;lt; package.json &#39;.version&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h5&gt;Example: Extracting the version from a &lt;code&gt;package.json&lt;/code&gt; file with a mounted volume&lt;/h5&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run --rm -i -v &quot;$PWD:$PWD&quot; -w &quot;$PWD&quot; ghcr.io/jqlang/jq:latest &#39;.version&#39; package.json
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Building from source&lt;/h3&gt; 
&lt;h4&gt;Dependencies&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;libtool&lt;/li&gt; 
 &lt;li&gt;make&lt;/li&gt; 
 &lt;li&gt;automake&lt;/li&gt; 
 &lt;li&gt;autoconf&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Instructions&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-console&quot;&gt;git submodule update --init    # if building from git to get oniguruma
autoreconf -i                  # if building from git
./configure --with-oniguruma=builtin
make clean                     # if upgrading from a version previously built from source
make -j8
make check
sudo make install
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Build a statically linked version:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-console&quot;&gt;make LDFLAGS=-all-static
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you&#39;re not using the latest git version but instead building a released tarball (available on the release page), skip the &lt;code&gt;autoreconf&lt;/code&gt; step, and flex or bison won&#39;t be needed.&lt;/p&gt; 
&lt;h5&gt;Cross-Compilation&lt;/h5&gt; 
&lt;p&gt;For details on cross-compilation, check out the &lt;a href=&quot;https://raw.githubusercontent.com/jqlang/jq/master/.github/workflows/ci.yml&quot;&gt;GitHub Actions file&lt;/a&gt; and the &lt;a href=&quot;https://github.com/jqlang/jq/wiki/Cross-compilation&quot;&gt;cross-compilation wiki page&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Community &amp;amp; Support&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Questions &amp;amp; Help: &lt;a href=&quot;https://stackoverflow.com/questions/tagged/jq&quot;&gt;Stack Overflow (jq tag)&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Chat &amp;amp; Community: &lt;a href=&quot;https://discord.gg/yg6yjNmgAC&quot;&gt;Join us on Discord&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Wiki &amp;amp; Advanced Topics: &lt;a href=&quot;https://github.com/jqlang/jq/wiki&quot;&gt;Explore the Wiki&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;jq&lt;/code&gt; is released under the &lt;a href=&quot;https://raw.githubusercontent.com/jqlang/jq/master/COPYING&quot;&gt;MIT License&lt;/a&gt;. &lt;code&gt;jq&lt;/code&gt;&#39;s documentation is licensed under the &lt;a href=&quot;https://raw.githubusercontent.com/jqlang/jq/master/COPYING&quot;&gt;Creative Commons CC BY 3.0&lt;/a&gt;. &lt;code&gt;jq&lt;/code&gt; uses parts of the open source C library &quot;decNumber&quot;, which is distributed under &lt;a href=&quot;https://raw.githubusercontent.com/jqlang/jq/master/COPYING&quot;&gt;ICU License&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>qmk/qmk_firmware</title>
      <link>https://github.com/qmk/qmk_firmware</link>
      <description>&lt;p&gt;Open-source keyboard firmware for Atmel AVR and Arm USB families&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Quantum Mechanical Keyboard Firmware&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/qmk/qmk_firmware/tags&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/tag/qmk/qmk_firmware.svg?sanitize=true&quot; alt=&quot;Current Version&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/qmk&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/440868230475677696.svg?sanitize=true&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://docs.qmk.fm&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/docs-ready-orange.svg?sanitize=true&quot; alt=&quot;Docs Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/qmk/qmk_firmware/pulse/monthly&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/contributors/qmk/qmk_firmware.svg?sanitize=true&quot; alt=&quot;GitHub contributors&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/qmk/qmk_firmware/&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&amp;amp;label=Fork&quot; alt=&quot;GitHub forks&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;This is a keyboard firmware based on the &lt;a href=&quot;https://github.com/tmk/tmk_keyboard&quot;&gt;tmk_keyboard firmware&lt;/a&gt; with some useful features for Atmel AVR and ARM controllers, and more specifically, the &lt;a href=&quot;https://olkb.com&quot;&gt;OLKB product line&lt;/a&gt;, the &lt;a href=&quot;https://ergodox-ez.com&quot;&gt;ErgoDox EZ&lt;/a&gt; keyboard, and the Clueboard product line.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://docs.qmk.fm&quot;&gt;See the official documentation on docs.qmk.fm&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The docs are powered by &lt;a href=&quot;https://vitepress.dev/&quot;&gt;VitePress&lt;/a&gt;. They are also viewable offline; see &lt;a href=&quot;https://docs.qmk.fm/#/contributing?id=previewing-the-documentation&quot;&gt;Previewing the Documentation&lt;/a&gt; for more details.&lt;/p&gt; 
&lt;p&gt;You can request changes by making a fork and opening a &lt;a href=&quot;https://github.com/qmk/qmk_firmware/pulls&quot;&gt;pull request&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Supported Keyboards&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/planck/&quot;&gt;Planck&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/preonic/&quot;&gt;Preonic&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/ergodox_ez/&quot;&gt;ErgoDox EZ&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/clueboard/&quot;&gt;Clueboard&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/clueboard/17/&quot;&gt;Cluepad&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/atreus/&quot;&gt;Atreus&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The project also includes community support for &lt;a href=&quot;https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/&quot;&gt;lots of other keyboards&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Maintainers&lt;/h2&gt; 
&lt;p&gt;QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, &lt;a href=&quot;https://github.com/tmk&quot;&gt;Hasu&lt;/a&gt;. The OLKB product firmwares are maintained by &lt;a href=&quot;https://github.com/jackhumbert&quot;&gt;Jack Humbert&lt;/a&gt;, the Ergodox EZ by &lt;a href=&quot;https://github.com/zsa&quot;&gt;ZSA Technology Labs&lt;/a&gt;, the Clueboard by &lt;a href=&quot;https://github.com/skullydazed&quot;&gt;Zach White&lt;/a&gt;, and the Atreus by &lt;a href=&quot;https://github.com/technomancy&quot;&gt;Phil Hagelberg&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Official Website&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://qmk.fm&quot;&gt;qmk.fm&lt;/a&gt; is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>microsoft/PowerToys</title>
      <link>https://github.com/microsoft/PowerToys</link>
      <description>&lt;p&gt;Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;./doc/images/readme/pt-hero.light.png&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/readme/pt-hero.dark.png&quot; /&gt; 
 &lt;/picture&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt; &lt;span&gt;Microsoft PowerToys&lt;/span&gt; &lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;span align=&quot;center&quot;&gt;Microsoft PowerToys is a collection of utilities that help you customize Windows and streamline everyday tasks.&lt;/span&gt; &lt;/p&gt; 
&lt;h3 align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/#-installation&quot;&gt;Installation&lt;/a&gt; &lt;span&gt; · &lt;/span&gt; &lt;a href=&quot;https://aka.ms/powertoys-docs&quot;&gt;Documentation&lt;/a&gt; &lt;span&gt; · &lt;/span&gt; &lt;a href=&quot;https://aka.ms/powertoys-releaseblog&quot;&gt;Blog&lt;/a&gt; &lt;span&gt; · &lt;/span&gt; &lt;a href=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/#-whats-new&quot;&gt;Release notes&lt;/a&gt; &lt;/h3&gt; 
&lt;h2&gt;🔨 Utilities&lt;/h2&gt; 
&lt;p&gt;PowerToys includes over 30 utilities to help you customize and optimize your Windows experience:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_AdvancedPaste&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/AdvancedPaste.png&quot; alt=&quot;Advanced Paste icon&quot; height=&quot;16&quot; /&gt; Advanced Paste&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_AoT&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Always%20On%20Top.png&quot; alt=&quot;Always on Top icon&quot; height=&quot;16&quot; /&gt; Always on Top&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_Awake&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Awake.png&quot; alt=&quot;Awake icon&quot; height=&quot;16&quot; /&gt; Awake&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_ColorPicker&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Color%20Picker.png&quot; alt=&quot;Color Picker icon&quot; height=&quot;16&quot; /&gt; Color Picker&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_CmdNotFound&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Command%20Not%20Found.png&quot; alt=&quot;Command Not Found icon&quot; height=&quot;16&quot; /&gt; Command Not Found&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_CmdPal&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Command%20Palette.png&quot; alt=&quot;Command Palette icon&quot; height=&quot;16&quot; /&gt; Command Palette&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_CropAndLock&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Crop%20And%20Lock.png&quot; alt=&quot;Crop and Lock icon&quot; height=&quot;16&quot; /&gt; Crop And Lock&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_EnvironmentVariables&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Environment%20Manager.png&quot; alt=&quot;Environment Variables icon&quot; height=&quot;16&quot; /&gt; Environment Variables&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_FancyZones&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/FancyZones.png&quot; alt=&quot;FancyZones icon&quot; height=&quot;16&quot; /&gt; FancyZones&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_FileExplorerAddOns&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/File%20Explorer%20Preview.png&quot; alt=&quot;File Explorer Add-ons icon&quot; height=&quot;16&quot; /&gt; File Explorer Add-ons&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_FileLocksmith&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/File%20Locksmith.png&quot; alt=&quot;File Locksmith icon&quot; height=&quot;16&quot; /&gt; File Locksmith&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_GrabAndMove&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/GrabAndMove.png&quot; alt=&quot;Grab And Move icon&quot; height=&quot;16&quot; /&gt; Grab And Move&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_HostsFileEditor&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Host%20File%20Editor.png&quot; alt=&quot;Hosts File Editor icon&quot; height=&quot;16&quot; /&gt; Hosts File Editor&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_ImageResizer&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Image%20Resizer.png&quot; alt=&quot;Image Resizer icon&quot; height=&quot;16&quot; /&gt; Image Resizer&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_KeyboardManager&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Keyboard%20Manager.png&quot; alt=&quot;Keyboard Manager icon&quot; height=&quot;16&quot; /&gt; Keyboard Manager&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_LightSwitch&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Light%20Switch.png&quot; alt=&quot;Light Switch icon&quot; height=&quot;16&quot; /&gt; Light Switch&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_MouseUtilities&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Find%20My%20Mouse.png&quot; alt=&quot;Mouse Utilities icon&quot; height=&quot;16&quot; /&gt; Mouse Utilities&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_MouseWithoutBorders&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/MouseWithoutBorders.png&quot; alt=&quot;Mouse Without Borders icon&quot; height=&quot;16&quot; /&gt; Mouse Without Borders&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_NewPlus&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/NewPlus.png&quot; alt=&quot;New+ icon&quot; height=&quot;16&quot; /&gt; New+&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_Peek&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Peek.png&quot; alt=&quot;Peek icon&quot; height=&quot;16&quot; /&gt; Peek&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_PowerDisplay&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/PowerDisplay.png&quot; alt=&quot;PowerDisplay icon&quot; height=&quot;16&quot; /&gt; PowerDisplay&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_PowerRename&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/PowerRename.png&quot; alt=&quot;PowerRename icon&quot; height=&quot;16&quot; /&gt; PowerRename&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_PowerToysRun&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/PowerToys%20Run.png&quot; alt=&quot;PowerToys Run icon&quot; height=&quot;16&quot; /&gt; PowerToys Run&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_QuickAccent&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/PowerAccent.png&quot; alt=&quot;Quick Accent icon&quot; height=&quot;16&quot; /&gt; Quick Accent&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_RegistryPreview&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Registry%20Preview.png&quot; alt=&quot;Registry Preview icon&quot; height=&quot;16&quot; /&gt; Registry Preview&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_ScreenRuler&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/MeasureTool.png&quot; alt=&quot;Screen Ruler icon&quot; height=&quot;16&quot; /&gt; Screen Ruler&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_ShortcutGuide&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Shortcut%20Guide.png&quot; alt=&quot;Shortcut Guide icon&quot; height=&quot;16&quot; /&gt; Shortcut Guide&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_TextExtractor&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/PowerOCR.png&quot; alt=&quot;Text Extractor icon&quot; height=&quot;16&quot; /&gt; Text Extractor&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_Workspaces&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/Workspaces.png&quot; alt=&quot;Workspaces icon&quot; height=&quot;16&quot; /&gt; Workspaces&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aka.ms/PowerToysOverview_ZoomIt&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/icons/ZoomIt.png&quot; alt=&quot;ZoomIt icon&quot; height=&quot;16&quot; /&gt; ZoomIt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;📦 Installation&lt;/h2&gt; 
&lt;p&gt;For detailed installation instructions and system requirements, visit the &lt;a href=&quot;https://learn.microsoft.com/windows/powertoys/install&quot;&gt;installation docs&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;But to get started quickly, choose one of the installation methods below: &lt;br /&gt;&lt;br /&gt;&lt;/p&gt; 
&lt;details open&gt; 
 &lt;summary&gt;&lt;strong&gt;Download the .exe file from GitHub&lt;/strong&gt;&lt;/summary&gt; 
 &lt;br /&gt; 
 &lt;p&gt;Go to the &lt;a href=&quot;https://aka.ms/installPowerToys&quot;&gt;PowerToys GitHub releases&lt;/a&gt;, scroll down and select &lt;strong&gt;Assets&lt;/strong&gt; to reveal the installation files, and choose the one that matches your architecture and install scope. For most devices, that would be &lt;em&gt;x64 per-user&lt;/em&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Microsoft Store&lt;/strong&gt;&lt;/summary&gt; 
 &lt;br /&gt; You can easily install PowerToys from the Microsoft Store: 
 &lt;p&gt; &lt;a style=&quot;text-decoration:none&quot; href=&quot;https://aka.ms/getPowertoys&quot;&gt; 
   &lt;picture&gt; 
    &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;doc/images/readme/StoreBadge-dark.png&quot; width=&quot;148&quot; /&gt; 
    &lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/readme/StoreBadge-light.png&quot; width=&quot;148&quot; /&gt; 
   &lt;/picture&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;WinGet&lt;/strong&gt;&lt;/summary&gt; 
 &lt;br /&gt; Download PowerToys from [WinGet](https://github.com/microsoft/winget-cli#installing-the-client). Updating PowerToys via winget will respect the current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell: 
 &lt;ul&gt; 
  &lt;li&gt;User scope installer (default)&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;winget install Microsoft.PowerToys -s winget
&lt;/code&gt;&lt;/pre&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Machine-wide scope installer&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;winget install --scope machine Microsoft.PowerToys -s winget
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Other methods&lt;/strong&gt;&lt;/summary&gt; 
 &lt;br /&gt; There are [community driven install methods](https://learn.microsoft.com/windows/powertoys/install#community-driven-install-tools) such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there. 
&lt;/details&gt; 
&lt;h2&gt;✨ What&#39;s new?&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/PowerToys/releases&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/readme/Release-Banner.png&quot; alt=&quot;What&#39;s new image&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;To see what&#39;s new, check out the &lt;a href=&quot;https://github.com/microsoft/PowerToys/releases/&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;🛣️ Roadmap&lt;/h2&gt; 
&lt;p&gt;We are planning some nice new features and improvements for the next releases – a brand-new Shortcut Guide experience, ensuring it&#39;s easier to find and install Command Palette extensions and so much more! Stay tuned for &lt;a href=&quot;https://github.com/microsoft/PowerToys/issues?q=is%3Aissue+milestone%3A%22PowerToys+0.100%22&quot;&gt;v0.100&lt;/a&gt;!&lt;/p&gt; 
&lt;h2&gt;❤️ PowerToys Community&lt;/h2&gt; 
&lt;p&gt;The PowerToys team is extremely grateful to have the &lt;a href=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/COMMUNITY.md&quot;&gt;support of an amazing active community&lt;/a&gt;. The work you do is incredibly important. PowerToys wouldn&#39;t be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Your contributions and feedback improve PowerToys month after month!&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;This project welcomes contributions of all types. Besides coding features / bug fixes, other ways to assist include spec writing, design, documentation, and finding bugs. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows. We ask that &lt;strong&gt;before you start work on a feature that you would like to contribute&lt;/strong&gt;, please read our &lt;a href=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/CONTRIBUTING.md&quot;&gt;Contributor&#39;s Guide&lt;/a&gt;. We would be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort. Most contributions require you to agree to a &lt;a href=&quot;https://cla.opensource.microsoft.com&quot;&gt;Contributor License Agreement (CLA)&lt;/a&gt; declaring that you grant us the rights to use your contribution and that you have permission to do so. For guidance on developing for PowerToys, please read the &lt;a href=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/devdocs&quot;&gt;developer docs&lt;/a&gt; for a detailed breakdown. This includes how to setup your computer to compile.&lt;/p&gt; 
&lt;h2&gt;Code of conduct&lt;/h2&gt; 
&lt;p&gt;This project has adopted the &lt;a href=&quot;https://raw.githubusercontent.com/microsoft/PowerToys/main/CODE_OF_CONDUCT.md&quot;&gt;Microsoft Open Source Code of Conduct&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Privacy statement&lt;/h2&gt; 
&lt;p&gt;The application logs basic diagnostic data (telemetry). For more privacy information and what we collect, see our &lt;a href=&quot;https://aka.ms/powertoys-data-and-privacy-documentation&quot;&gt;PowerToys Data and Privacy documentation&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>memovai/mimiclaw</title>
      <link>https://github.com/memovai/mimiclaw</link>
      <description>&lt;p&gt;MimiClaw: Harness on a $5 chip. No OS(Linux). No Node.js. No Mac mini. No Raspberry Pi. No VPS. Hardware agents OS.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;MimiClaw: Pocket AI Assistant on a $5 Chip&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/assets/banner.png&quot; alt=&quot;MimiClaw&quot; width=&quot;500&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-MIT-yellow.svg?sanitize=true&quot; alt=&quot;License: MIT&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://deepwiki.com/memovai/mimiclaw&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/DeepWiki-mimiclaw-blue.svg?sanitize=true&quot; alt=&quot;DeepWiki&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/r8ZxSvB8Yr&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-mimiclaw-5865F2?logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://x.com/ssslvky&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/X-@ssslvky-black?logo=x&quot; alt=&quot;X&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/README.md&quot;&gt;English&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/README_CN.md&quot;&gt;中文&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/README_JA.md&quot;&gt;日本語&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;The world&#39;s first AI assistant(OpenClaw) on a $5 chip. No Linux. No Node.js. Just pure C&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;MimiClaw turns a tiny ESP32-S3 board into a personal AI assistant. Plug it into USB power, connect to WiFi, and talk to it through Telegram — it handles any task you throw at it and evolves over time with local memory — all on a chip the size of a thumb.&lt;/p&gt; 
&lt;h2&gt;Meet MimiClaw&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Tiny&lt;/strong&gt; — No Linux, no Node.js, no bloat — just pure C&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Handy&lt;/strong&gt; — Message it from Telegram, it handles the rest&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Loyal&lt;/strong&gt; — Learns from memory, remembers across reboots&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Energetic&lt;/strong&gt; — USB power, 0.5 W, runs 24/7&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Lovable&lt;/strong&gt; — One ESP32-S3 board, $5, nothing else&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;How It Works&lt;/h2&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/assets/mimiclaw.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;You send a message on Telegram. The ESP32-S3 picks it up over WiFi, feeds it into an agent loop — the LLM thinks, calls tools, reads memory — and sends the reply back. Supports both &lt;strong&gt;Anthropic (Claude)&lt;/strong&gt; and &lt;strong&gt;OpenAI (GPT)&lt;/strong&gt; as providers, switchable at runtime. Everything runs on a single $5 chip with all your data stored locally on flash.&lt;/p&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;h3&gt;What You Need&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;An &lt;strong&gt;ESP32-S3 dev board&lt;/strong&gt; with 16 MB flash and 8 MB PSRAM (e.g. Xiaozhi AI board, ~$10)&lt;/li&gt; 
 &lt;li&gt;A &lt;strong&gt;USB Type-C cable&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;A &lt;strong&gt;Telegram bot token&lt;/strong&gt; — talk to &lt;a href=&quot;https://t.me/BotFather&quot;&gt;@BotFather&lt;/a&gt; on Telegram to create one&lt;/li&gt; 
 &lt;li&gt;An &lt;strong&gt;Anthropic API key&lt;/strong&gt; — from &lt;a href=&quot;https://console.anthropic.com&quot;&gt;console.anthropic.com&lt;/a&gt;, or an &lt;strong&gt;OpenAI API key&lt;/strong&gt; — from &lt;a href=&quot;https://platform.openai.com&quot;&gt;platform.openai.com&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Install&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# You need ESP-IDF v5.5+ installed first:
# https://docs.espressif.com/projects/esp-idf/en/v5.5.2/esp32s3/get-started/

git clone https://github.com/memovai/mimiclaw.git
cd mimiclaw

idf.py set-target esp32s3
&lt;/code&gt;&lt;/pre&gt; 
&lt;details&gt; 
 &lt;summary&gt;Ubuntu Install&lt;/summary&gt; 
 &lt;p&gt;Recommended baseline:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Ubuntu 22.04/24.04&lt;/li&gt; 
  &lt;li&gt;Python &amp;gt;= 3.10&lt;/li&gt; 
  &lt;li&gt;CMake &amp;gt;= 3.16&lt;/li&gt; 
  &lt;li&gt;Ninja &amp;gt;= 1.10&lt;/li&gt; 
  &lt;li&gt;Git &amp;gt;= 2.34&lt;/li&gt; 
  &lt;li&gt;flex &amp;gt;= 2.6&lt;/li&gt; 
  &lt;li&gt;bison &amp;gt;= 3.8&lt;/li&gt; 
  &lt;li&gt;gperf &amp;gt;= 3.1&lt;/li&gt; 
  &lt;li&gt;dfu-util &amp;gt;= 0.11&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;libusb-1.0-0&lt;/code&gt;, &lt;code&gt;libffi-dev&lt;/code&gt;, &lt;code&gt;libssl-dev&lt;/code&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;Install and build on Ubuntu:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get update
sudo apt-get install -y git wget flex bison gperf python3 python3-pip python3-venv \
  cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

./scripts/setup_idf_ubuntu.sh
./scripts/build_ubuntu.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;macOS Install&lt;/summary&gt; 
 &lt;p&gt;Recommended baseline:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;macOS 12/13/14&lt;/li&gt; 
  &lt;li&gt;Xcode Command Line Tools&lt;/li&gt; 
  &lt;li&gt;Homebrew&lt;/li&gt; 
  &lt;li&gt;Python &amp;gt;= 3.10&lt;/li&gt; 
  &lt;li&gt;CMake &amp;gt;= 3.16&lt;/li&gt; 
  &lt;li&gt;Ninja &amp;gt;= 1.10&lt;/li&gt; 
  &lt;li&gt;Git &amp;gt;= 2.34&lt;/li&gt; 
  &lt;li&gt;flex &amp;gt;= 2.6&lt;/li&gt; 
  &lt;li&gt;bison &amp;gt;= 3.8&lt;/li&gt; 
  &lt;li&gt;gperf &amp;gt;= 3.1&lt;/li&gt; 
  &lt;li&gt;dfu-util &amp;gt;= 0.11&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;libusb&lt;/code&gt;, &lt;code&gt;libffi&lt;/code&gt;, &lt;code&gt;openssl&lt;/code&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;Install and build on macOS:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;xcode-select --install
/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;

./scripts/setup_idf_macos.sh
./scripts/build_macos.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;h3&gt;Configure&lt;/h3&gt; 
&lt;p&gt;MimiClaw uses a &lt;strong&gt;two-layer config&lt;/strong&gt; system: build-time defaults in &lt;code&gt;mimi_secrets.h&lt;/code&gt;, with runtime overrides via the serial CLI. CLI values are stored in NVS flash and take priority over build-time values.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cp main/mimi_secrets.h.example main/mimi_secrets.h
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Edit &lt;code&gt;main/mimi_secrets.h&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-c&quot;&gt;#define MIMI_SECRET_WIFI_SSID       &quot;YourWiFiName&quot;
#define MIMI_SECRET_WIFI_PASS       &quot;YourWiFiPassword&quot;
#define MIMI_SECRET_TG_TOKEN        &quot;123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11&quot;
#define MIMI_SECRET_API_KEY         &quot;sk-ant-api03-xxxxx&quot;
#define MIMI_SECRET_MODEL_PROVIDER  &quot;anthropic&quot;     // &quot;anthropic&quot; or &quot;openai&quot;
#define MIMI_SECRET_SEARCH_KEY      &quot;&quot;              // optional: Brave Search API key
#define MIMI_SECRET_TAVILY_KEY      &quot;&quot;              // optional: Tavily API key (preferred)
#define MIMI_SECRET_PROXY_HOST      &quot;&quot;              // optional: e.g. &quot;10.0.0.1&quot;
#define MIMI_SECRET_PROXY_PORT      &quot;&quot;              // optional: e.g. &quot;7897&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then build and flash:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Clean build (required after any mimi_secrets.h change)
idf.py fullclean &amp;amp;&amp;amp; idf.py build

# Find your serial port
ls /dev/cu.usb*          # macOS
ls /dev/ttyACM*          # Linux

# Flash and monitor (replace PORT with your port)
# USB adapter: likely /dev/cu.usbmodem11401 (macOS) or /dev/ttyACM0 (Linux)
idf.py -p PORT flash monitor
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Important: Plug into the correct USB port!&lt;/strong&gt; Most ESP32-S3 boards have two USB-C ports. You must use the one labeled &lt;strong&gt;USB&lt;/strong&gt; (native USB Serial/JTAG), &lt;strong&gt;not&lt;/strong&gt; the one labeled &lt;strong&gt;COM&lt;/strong&gt; (external UART bridge). Plugging into the wrong port will cause flash/monitor failures.&lt;/p&gt; 
 &lt;details&gt; 
  &lt;summary&gt;Show reference photo&lt;/summary&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/assets/esp32s3-usb-port.jpg&quot; alt=&quot;Plug into the USB port, not COM&quot; width=&quot;480&quot; /&gt; 
 &lt;/details&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;CLI Commands (via UART/COM port)&lt;/h3&gt; 
&lt;p&gt;Connect via serial to configure or debug. &lt;strong&gt;Config commands&lt;/strong&gt; let you change settings without recompiling — just plug in a USB cable anywhere.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Runtime config&lt;/strong&gt; (saved to NVS, overrides build-time defaults):&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mimi&amp;gt; wifi_set MySSID MyPassword   # change WiFi network
mimi&amp;gt; set_tg_token 123456:ABC...   # change Telegram bot token
mimi&amp;gt; set_api_key sk-ant-api03-... # change API key (Anthropic or OpenAI)
mimi&amp;gt; set_model_provider openai    # switch provider (anthropic|openai)
mimi&amp;gt; set_model gpt-4o             # change LLM model
mimi&amp;gt; set_proxy 127.0.0.1 7897  # set HTTP proxy
mimi&amp;gt; clear_proxy                  # remove proxy
mimi&amp;gt; set_search_key BSA...        # set Brave Search API key
mimi&amp;gt; set_tavily_key tvly-...      # set Tavily API key (preferred)
mimi&amp;gt; config_show                  # show all config (masked)
mimi&amp;gt; config_reset                 # clear NVS, revert to build-time defaults
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Debug &amp;amp; maintenance:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mimi&amp;gt; wifi_status              # am I connected?
mimi&amp;gt; memory_read              # see what the bot remembers
mimi&amp;gt; memory_write &quot;content&quot;   # write to MEMORY.md
mimi&amp;gt; heap_info                # how much RAM is free?
mimi&amp;gt; session_list             # list all chat sessions
mimi&amp;gt; session_clear 12345      # wipe a conversation
mimi&amp;gt; heartbeat_trigger           # manually trigger a heartbeat check
mimi&amp;gt; cron_start                  # start cron scheduler now
mimi&amp;gt; restart                     # reboot
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;USB (JTAG) vs UART: Which Port for What&lt;/h3&gt; 
&lt;p&gt;Most ESP32-S3 dev boards expose &lt;strong&gt;two USB-C ports&lt;/strong&gt;:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Port&lt;/th&gt; 
   &lt;th&gt;Use for&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;USB&lt;/strong&gt; (JTAG)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;idf.py flash&lt;/code&gt;, JTAG debugging&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;COM&lt;/strong&gt; (UART)&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;REPL CLI&lt;/strong&gt;, serial console&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;REPL requires the UART (COM) port.&lt;/strong&gt; The USB (JTAG) port does not support interactive REPL input.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;details&gt; 
 &lt;summary&gt;Port details &amp;amp; recommended workflow&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Port&lt;/th&gt; 
    &lt;th&gt;Label&lt;/th&gt; 
    &lt;th&gt;Protocol&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;USB&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;USB / JTAG&lt;/td&gt; 
    &lt;td&gt;Native USB Serial/JTAG&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;COM&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;UART / COM&lt;/td&gt; 
    &lt;td&gt;External UART bridge (CP2102/CH340)&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;The ESP-IDF console/REPL is configured to use UART by default (&lt;code&gt;CONFIG_ESP_CONSOLE_UART_DEFAULT=y&lt;/code&gt;).&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;If you have both ports connected simultaneously:&lt;/strong&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;USB (JTAG) handles flash/download and provides secondary serial output&lt;/li&gt; 
  &lt;li&gt;UART (COM) provides the primary interactive console for the REPL&lt;/li&gt; 
  &lt;li&gt;macOS: both appear as &lt;code&gt;/dev/cu.usbmodem*&lt;/code&gt; or &lt;code&gt;/dev/cu.usbserial-*&lt;/code&gt; — run &lt;code&gt;ls /dev/cu.usb*&lt;/code&gt; to identify&lt;/li&gt; 
  &lt;li&gt;Linux: USB (JTAG) → &lt;code&gt;/dev/ttyACM0&lt;/code&gt;, UART → &lt;code&gt;/dev/ttyUSB0&lt;/code&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;&lt;strong&gt;Recommended workflow:&lt;/strong&gt;&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Flash via USB (JTAG) port
idf.py -p /dev/cu.usbmodem11401 flash

# Open REPL via UART (COM) port
idf.py -p /dev/cu.usbserial-110 monitor
# or use any serial terminal: screen, minicom, PuTTY at 115200 baud
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;h2&gt;Memory&lt;/h2&gt; 
&lt;p&gt;MimiClaw stores everything as plain text files you can read and edit:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;File&lt;/th&gt; 
   &lt;th&gt;What it is&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;The bot&#39;s personality — edit this to change how it behaves&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Info about you — name, preferences, language&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Long-term memory — things the bot should always remember&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;HEARTBEAT.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Task list the bot checks periodically and acts on autonomously&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cron.json&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Scheduled jobs — recurring or one-shot tasks created by the AI&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;2026-02-05.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Daily notes — what happened today&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;tg_12345.jsonl&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Chat history — your conversation with the bot&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Tools&lt;/h2&gt; 
&lt;p&gt;MimiClaw supports tool calling for both Anthropic and OpenAI — the LLM can call tools during a conversation and loop until the task is done (ReAct pattern).&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Tool&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;web_search&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Search the web via Tavily (preferred) or Brave for current information&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;get_current_time&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Fetch current date/time via HTTP and set the system clock&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cron_add&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Schedule a recurring or one-shot task (the LLM creates cron jobs on its own)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cron_list&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;List all scheduled cron jobs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cron_remove&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Remove a cron job by ID&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;To enable web search, set a &lt;a href=&quot;https://app.tavily.com/home&quot;&gt;Tavily API key&lt;/a&gt; via &lt;code&gt;MIMI_SECRET_TAVILY_KEY&lt;/code&gt; (preferred), or a &lt;a href=&quot;https://brave.com/search/api/&quot;&gt;Brave Search API key&lt;/a&gt; via &lt;code&gt;MIMI_SECRET_SEARCH_KEY&lt;/code&gt; in &lt;code&gt;mimi_secrets.h&lt;/code&gt;.&lt;/p&gt; 
&lt;h2&gt;Cron Tasks&lt;/h2&gt; 
&lt;p&gt;MimiClaw has a built-in cron scheduler that lets the AI schedule its own tasks. The LLM can create recurring jobs (&quot;every N seconds&quot;) or one-shot jobs (&quot;at unix timestamp&quot;) via the &lt;code&gt;cron_add&lt;/code&gt; tool. When a job fires, its message is injected into the agent loop — so the AI wakes up, processes the task, and responds.&lt;/p&gt; 
&lt;p&gt;Jobs are persisted to SPIFFS (&lt;code&gt;cron.json&lt;/code&gt;) and survive reboots. Example use cases: daily summaries, periodic reminders, scheduled check-ins.&lt;/p&gt; 
&lt;h2&gt;Heartbeat&lt;/h2&gt; 
&lt;p&gt;The heartbeat service periodically reads &lt;code&gt;HEARTBEAT.md&lt;/code&gt; from SPIFFS and checks for actionable tasks. If uncompleted items are found (anything that isn&#39;t an empty line, a header, or a checked &lt;code&gt;- [x]&lt;/code&gt; box), it sends a prompt to the agent loop so the AI can act on them autonomously.&lt;/p&gt; 
&lt;p&gt;This turns MimiClaw into a proactive assistant — write tasks to &lt;code&gt;HEARTBEAT.md&lt;/code&gt; and the bot will pick them up on the next heartbeat cycle (default: every 30 minutes).&lt;/p&gt; 
&lt;h2&gt;Also Included&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;WebSocket gateway&lt;/strong&gt; on port 18789 — connect from your LAN with any WebSocket client&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;OTA updates&lt;/strong&gt; — flash new firmware over WiFi, no USB needed&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Dual-core&lt;/strong&gt; — network I/O and AI processing run on separate CPU cores&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;HTTP proxy&lt;/strong&gt; — CONNECT tunnel support for restricted networks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multi-provider&lt;/strong&gt; — supports both Anthropic (Claude) and OpenAI (GPT), switchable at runtime&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Cron scheduler&lt;/strong&gt; — the AI can schedule its own recurring and one-shot tasks, persisted across reboots&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Heartbeat&lt;/strong&gt; — periodically checks a task file and prompts the AI to act autonomously&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool use&lt;/strong&gt; — ReAct agent loop with tool calling for both providers&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;For Developers&lt;/h2&gt; 
&lt;p&gt;Technical details live in the &lt;code&gt;docs/&lt;/code&gt; folder:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/docs/ARCHITECTURE.md&quot;&gt;docs/ARCHITECTURE.md&lt;/a&gt;&lt;/strong&gt; — system design, module map, task layout, memory budget, protocols, flash partitions&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/docs/TODO.md&quot;&gt;docs/TODO.md&lt;/a&gt;&lt;/strong&gt; — feature gap tracker and roadmap&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/docs/WIFI_ONBOARDING_AP.md&quot;&gt;docs/WIFI_ONBOARDING_AP.md&lt;/a&gt;&lt;/strong&gt; — how the local &lt;code&gt;MimiClaw-XXXX&lt;/code&gt; onboarding/admin AP flow works&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/docs/tool-setup/README.md&quot;&gt;docs/tool-setup/&lt;/a&gt;&lt;/strong&gt; — configuration guides for external service integrations (Tavily, etc.)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Please read &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/memovai/mimiclaw/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt;&lt;/strong&gt; before opening issues or pull requests.&lt;/p&gt; 
&lt;h2&gt;Contributors&lt;/h2&gt; 
&lt;p&gt;Thanks to everyone who has contributed to MimiClaw.&lt;/p&gt; 
&lt;a href=&quot;https://github.com/memovai/mimiclaw/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=memovai/mimiclaw&quot; alt=&quot;MimiClaw contributors&quot; /&gt; &lt;/a&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;MIT&lt;/p&gt; 
&lt;h2&gt;Acknowledgments&lt;/h2&gt; 
&lt;p&gt;Inspired by &lt;a href=&quot;https://github.com/openclaw/openclaw&quot;&gt;OpenClaw&lt;/a&gt; and &lt;a href=&quot;https://github.com/HKUDS/nanobot&quot;&gt;Nanobot&lt;/a&gt;. MimiClaw reimplements the core AI agent architecture for embedded hardware — no Linux, no server, just a $5 chip.&lt;/p&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://www.star-history.com/?repos=memovai%2Fmimiclaw&amp;amp;type=date&amp;amp;legend=top-left&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://api.star-history.com/image?repos=memovai/mimiclaw&amp;amp;type=date&amp;amp;theme=dark&amp;amp;legend=top-left&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://api.star-history.com/image?repos=memovai/mimiclaw&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://api.star-history.com/image?repos=memovai/mimiclaw&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt;</description>
      
    </item>
    
    <item>
      <title>asterisk/asterisk</title>
      <link>https://github.com/asterisk/asterisk</link>
      <description>&lt;p&gt;The official Asterisk Project repository.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;The Asterisk(R) Open Source PBX&lt;/h1&gt; 
&lt;pre&gt;&lt;code&gt;By Mark Spencer &amp;lt;markster@digium.com&amp;gt; and the Asterisk.org developer community.
Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;SECURITY&lt;/h2&gt; 
&lt;p&gt;It is imperative that you read and fully understand the contents of the security information document before you attempt to configure and run an Asterisk server.&lt;/p&gt; 
&lt;p&gt;See &lt;a href=&quot;https://docs.asterisk.org/Deployment/Important-Security-Considerations&quot;&gt;Important Security Considerations&lt;/a&gt; for more information.&lt;/p&gt; 
&lt;h2&gt;WHAT IS ASTERISK ?&lt;/h2&gt; 
&lt;p&gt;Asterisk is an Open Source PBX and telephony toolkit. It is, in a sense, middleware between Internet and telephony channels on the bottom, and Internet and telephony applications at the top. However, Asterisk supports more telephony interfaces than just Internet telephony. Asterisk also has a vast amount of support for traditional PSTN telephony, as well.&lt;/p&gt; 
&lt;p&gt;For more information on the project itself, please visit the &lt;a href=&quot;https://www.asterisk.org&quot;&gt;Asterisk Home Page&lt;/a&gt; and the official &lt;a href=&quot;https://docs.asterisk.org&quot;&gt;Asterisk Documentation&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;SUPPORTED OPERATING SYSTEMS&lt;/h2&gt; 
&lt;h3&gt;Linux&lt;/h3&gt; 
&lt;p&gt;The Asterisk Open Source PBX is developed and tested primarily on the GNU/Linux operating system, and is supported on every major GNU/Linux distribution.&lt;/p&gt; 
&lt;h3&gt;Others&lt;/h3&gt; 
&lt;p&gt;Asterisk has also been &#39;ported&#39; and reportedly runs properly on other operating systems as well, Apple&#39;s Mac OS X, and the BSD variants.&lt;/p&gt; 
&lt;h2&gt;GETTING STARTED&lt;/h2&gt; 
&lt;p&gt;Most users are using VoIP/SIP exclusively these days but if you need to interface to TDM or analog services or devices, be sure you&#39;ve got supported hardware.&lt;/p&gt; 
&lt;p&gt;Supported telephony hardware includes:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;All Analog and Digital Interface cards from Sangoma&lt;/li&gt; 
 &lt;li&gt;Any full duplex sound card supported by PortAudio&lt;/li&gt; 
 &lt;li&gt;The Xorcom Astribank channel bank&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;UPGRADING FROM AN EARLIER VERSION&lt;/h3&gt; 
&lt;p&gt;If you are updating from a previous version of Asterisk, make sure you read the Change Logs.&lt;/p&gt; 
&lt;!-- CHANGELOGS (the URL will change based on the location of this README) --&gt; 
&lt;p&gt;&lt;a href=&quot;https://downloads.asterisk.org/pub/telephony/asterisk&quot;&gt;Change Logs&lt;/a&gt;&lt;/p&gt; 
&lt;!-- END-CHANGELOGS --&gt; 
&lt;h3&gt;NEW INSTALLATIONS&lt;/h3&gt; 
&lt;p&gt;Ensure that your system contains a compatible compiler and development libraries. Asterisk requires either the GNU Compiler Collection (GCC) version 4.1 or higher, or a compiler that supports the C99 specification and some of the gcc language extensions. In addition, your system needs to have the C library headers available, and the headers and libraries for ncurses.&lt;/p&gt; 
&lt;p&gt;There are many modules that have additional dependencies. To see what libraries are being looked for, see &lt;code&gt;./configure --help&lt;/code&gt;, or run &lt;code&gt;make menuselect&lt;/code&gt; to view the dependencies for specific modules.&lt;/p&gt; 
&lt;p&gt;On many distributions, these dependencies are installed by packages with names like &#39;glibc-devel&#39;, &#39;ncurses-devel&#39;, &#39;openssl-devel&#39; and &#39;zlib-devel&#39; or similar. The &lt;code&gt;contrib/scripts/install_prereq&lt;/code&gt; script can be used to install the dependencies for most Debian and Redhat based Linux distributions. The script also handles SUSE, Arch, Gentoo, FreeBSD, NetBSD and OpenBSD but those distributions mightnoit have complete support or they might be out of date.&lt;/p&gt; 
&lt;p&gt;So, let&#39;s proceed:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Read the documentation.&lt;br /&gt; The &lt;a href=&quot;https://docs.asterisk.org&quot;&gt;Asterisk Documentation&lt;/a&gt; website has full information for building, installing, configuring and running Asterisk.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Run &lt;code&gt;./configure&lt;/code&gt;&lt;br /&gt; Execute the configure script to guess values for system-dependent variables used during compilation. If the script indicates that some required components are missing, you can run &lt;code&gt;./contrib/scripts/install_prereq install&lt;/code&gt; to install the necessary components. Note that this will install all dependencies for every functionality of Asterisk. After running the script, you will need to rerun &lt;code&gt;./configure&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Run &lt;code&gt;make menuselect&lt;/code&gt;&lt;br /&gt; This is needed if you want to select the modules that will be compiled and to check dependencies for various optional modules.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Run &lt;code&gt;make&lt;/code&gt;&lt;br /&gt; Assuming the build completes successfully:&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Run &lt;code&gt;make install&lt;/code&gt;&lt;br /&gt; If this is your first time working with Asterisk, you may wish to install the sample PBX, with demonstration extensions, etc. If so, run:&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Run &lt;code&gt;make samples&lt;/code&gt;&lt;br /&gt; Doing so will overwrite any existing configuration files you have installed.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Finally, you can launch Asterisk in the foreground mode (not a daemon) with &lt;code&gt;asterisk -vvvc&lt;/code&gt;&lt;br /&gt; You&#39;ll see a bunch of verbose messages fly by your screen as Asterisk initializes (that&#39;s the &quot;very very verbose&quot; mode). When it&#39;s ready, if you specified the &quot;c&quot; then you&#39;ll get a command line console, that looks like this:&lt;br /&gt; &lt;code&gt;*CLI&amp;gt;&lt;/code&gt;&lt;br /&gt; You can type &lt;code&gt;core show help&lt;/code&gt; at any time to get help with the system. For help with a specific command, type &lt;code&gt;core show help &amp;lt;command&amp;gt;&lt;/code&gt;.&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;code&gt;man asterisk&lt;/code&gt; at the Unix/Linux command prompt will give you detailed information on how to start and stop Asterisk, as well as all the command line options for starting Asterisk.&lt;/p&gt; 
&lt;h3&gt;ABOUT CONFIGURATION FILES&lt;/h3&gt; 
&lt;p&gt;All Asterisk configuration files share a common format. Comments are delimited by &lt;code&gt;;&lt;/code&gt; (since &lt;code&gt;#&lt;/code&gt; of course, being a DTMF digit, may occur in many places). A configuration file is divided into sections whose names appear in &lt;code&gt;[]&lt;/code&gt;&#39;s. Each section typically contains statements in the form &lt;code&gt;variable = value&lt;/code&gt; although you may see &lt;code&gt;variable =&amp;gt; value&lt;/code&gt; in older samples.&lt;/p&gt; 
&lt;h3&gt;SPECIAL NOTE ON TIME&lt;/h3&gt; 
&lt;p&gt;Those using SIP phones should be aware that Asterisk is sensitive to large jumps in time. Manually changing the system time using date(1) (or other similar commands) may cause SIP registrations and other internal processes to fail. For this reason, you should always use a time synchronization package to keep your system time accurate. All OS/distributions make one or more of the following packages available:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;ntpd/ntpsec&lt;/li&gt; 
 &lt;li&gt;chronyd&lt;/li&gt; 
 &lt;li&gt;systemd-timesyncd&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Be sure to install and configure one (and only one) of them.&lt;/p&gt; 
&lt;h3&gt;FILE DESCRIPTORS&lt;/h3&gt; 
&lt;p&gt;Depending on the size of your system and your configuration, Asterisk can consume a large number of file descriptors. In UNIX, file descriptors are used for more than just files on disk. File descriptors are also used for handling network communication (e.g. SIP, IAX2, or H.323 calls) and hardware access (e.g. analog and digital trunk hardware). Asterisk accesses many on-disk files for everything from configuration information to voicemail storage.&lt;/p&gt; 
&lt;p&gt;Most systems limit the number of file descriptors that Asterisk can have open at one time. This can limit the number of simultaneous calls that your system can handle. For example, if the limit is set at 1024 (a common default value) Asterisk can handle approximately 150 SIP calls simultaneously. To change the number of file descriptors follow the instructions for your system below:&lt;/p&gt; 
&lt;h4&gt;PAM-BASED LINUX SYSTEM&lt;/h4&gt; 
&lt;p&gt;If your system uses PAM (Pluggable Authentication Modules) edit &lt;code&gt;/etc/security/limits.conf&lt;/code&gt;. Add these lines to the bottom of the file:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;root            soft    nofile          4096
root            hard    nofile          8196
asterisk        soft    nofile          4096
asterisk        hard    nofile          8196
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;(adjust the numbers to taste). You may need to reboot the system for these changes to take effect.&lt;/p&gt; 
&lt;h4&gt;GENERIC UNIX SYSTEM&lt;/h4&gt; 
&lt;p&gt;If there are no instructions specifically adapted to your system above you can try adding the command &lt;code&gt;ulimit -n 8192&lt;/code&gt; to the script that starts Asterisk.&lt;/p&gt; 
&lt;h2&gt;MORE INFORMATION&lt;/h2&gt; 
&lt;p&gt;Visit the &lt;a href=&quot;https://docs.asterisk.org&quot;&gt;Asterisk Documentation&lt;/a&gt; website for more documentation on various features and please read all the configuration samples that include documentation on the configuration options.&lt;/p&gt; 
&lt;p&gt;Finally, you may wish to join the &lt;a href=&quot;https://community.asterisk.org&quot;&gt;Asterisk Community Forums&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Welcome to the growing worldwide community of Asterisk users!&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;        Mark Spencer, and the Asterisk.org development community
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;p&gt;Asterisk is a trademark of Sangoma Technologies Corporation&lt;/p&gt; 
&lt;p&gt;[&lt;a href=&quot;https://www.sangoma.com/&quot;&gt;Sangoma&lt;/a&gt;] [&lt;a href=&quot;https://www.asterisk.org&quot;&gt;Home Page&lt;/a&gt;] [&lt;a href=&quot;https://www.asterisk.org/support&quot;&gt;Support&lt;/a&gt;] [&lt;a href=&quot;https://docs.asterisk.org&quot;&gt;Documentation&lt;/a&gt;] [&lt;a href=&quot;https://community.asterisk.org&quot;&gt;Community Forums&lt;/a&gt;] [&lt;a href=&quot;https://github.com/asterisk/asterisk/releases&quot;&gt;Release Notes&lt;/a&gt;] [&lt;a href=&quot;https://docs.asterisk.org/Deployment/Important-Security-Considerations/&quot;&gt;Security&lt;/a&gt;] [&lt;a href=&quot;https://lists.digium.com&quot;&gt;Mailing List Archive&lt;/a&gt;]&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>HermannBjorgvin/Clawdmeter</title>
      <link>https://github.com/HermannBjorgvin/Clawdmeter</link>
      <description>&lt;p&gt;ESP32 desk dashboard that shows Claude Code usage&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Clawdmeter&lt;/h1&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/assets/readme/waving.gif&quot; width=&quot;120&quot; align=&quot;right&quot; alt=&quot;&quot; /&gt; 
&lt;p&gt;A small ESP32 dashboard I made for my desk to keep an eye on Claude Code usage.&lt;/p&gt; 
&lt;p&gt;It runs on a &lt;a href=&quot;https://www.waveshare.com/esp32-s3-touch-amoled-2.16.htm?&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-S3-Touch-AMOLED-2.16&lt;/a&gt; as well as a few other alternative boards and pairs over Bluetooth, the splash screen plays pixel-art Clawd animations that get busier when your usage rate climbs. The two side buttons send Space and Shift+Tab over BLE HID for Claude Code&#39;s voice mode and mode-toggle shortcuts.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/assets/demo.jpeg&quot; alt=&quot;Usage meter&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Screens&lt;/h2&gt; 
&lt;p&gt;The device boots into the splash. Tap the screen anywhere to switch to the Usage view; tap again to flip back to the splash.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Splash&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Usage&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/screenshots/splash.gif&quot; alt=&quot;Splash&quot; /&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/screenshots/usage.png&quot; alt=&quot;Usage&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Splash; touch-toggle anytime&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Session and weekly utilization&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;While the splash is up, the middle (PWR) button cycles animations. &lt;strong&gt;Hold the power button for 3 seconds, then release, to put the device into pairing mode&lt;/strong&gt; — this clears the saved Bluetooth bond and re-advertises. The firmware also auto-rotates animations every 20 s within the current usage-rate group, so a long stretch on the splash isn&#39;t just one Clawd on loop.&lt;/p&gt; 
&lt;h2&gt;Hardware&lt;/h2&gt; 
&lt;p&gt;Boards supported out of the box:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.waveshare.com/esp32-s3-touch-amoled-2.16.htm?&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-S3-Touch-AMOLED-2.16&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.waveshare.com/esp32-c6-touch-amoled-2.16.htm?&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-C6-Touch-AMOLED-2.16&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.waveshare.com/esp32-s3-touch-amoled-1.8.htm?&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-S3-Touch-AMOLED-1.8&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.waveshare.com/esp32-c6-touch-amoled-1.8.htm?&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-C6-Touch-AMOLED-1.8&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.waveshare.com/esp32-s3-touch-amoled-2.06.htm?&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-S3-Touch-AMOLED-2.06&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.waveshare.com/esp32-s3-lcd-1.54.htm?sku=33869&amp;amp;aff_id=149786&quot;&gt;Waveshare ESP32-S3-Touch-LCD-1.54&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Please check if a pull request exists for your alternative hardware port before opening a new one, providing QA feedback and testing on the same hardware is more valuable than duplicate pull requests.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Porting to another board:&lt;/strong&gt; the firmware is a thin HAL with per-board folders under &lt;code&gt;firmware/src/boards/&lt;/code&gt;. Drop in a new folder and a new PlatformIO env — &lt;code&gt;main.cpp&lt;/code&gt;, &lt;code&gt;ui.cpp&lt;/code&gt;, and &lt;code&gt;splash.cpp&lt;/code&gt; never need to change. See &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/docs/porting/adding-a-board.md&quot;&gt;&lt;code&gt;docs/porting/adding-a-board.md&lt;/code&gt;&lt;/a&gt; for the walk-through and &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/docs/porting/hal-contract.md&quot;&gt;&lt;code&gt;docs/porting/hal-contract.md&lt;/code&gt;&lt;/a&gt; for the interfaces a port must implement.&lt;/p&gt; 
&lt;h2&gt;Prerequisites&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Linux (tested on Ubuntu), macOS, or Windows 10/11&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://docs.platformio.org/en/latest/core/installation/index.html&quot;&gt;PlatformIO CLI&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Linux: &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;bluetoothctl&lt;/code&gt;, &lt;code&gt;busctl&lt;/code&gt; (BlueZ Bluetooth stack)&lt;/li&gt; 
 &lt;li&gt;macOS: &lt;code&gt;python3&lt;/code&gt; (the installer sets up a venv with &lt;code&gt;bleak&lt;/code&gt; and &lt;code&gt;httpx&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Windows: &lt;code&gt;python3&lt;/code&gt; 3.11+ (the installer sets up a venv with &lt;code&gt;bleak&lt;/code&gt;, &lt;code&gt;httpx&lt;/code&gt;, and &lt;code&gt;pystray&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Claude Code with an active subscription&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;macOS installation&lt;/h2&gt; 
&lt;p&gt;The macOS host pieces — Python daemon, LaunchAgent, and flash helper — were ported by &lt;a href=&quot;https://github.com/lorddavidson&quot;&gt;Chris Davidson (@lorddavidson)&lt;/a&gt;. Thanks Chris!&lt;/p&gt; 
&lt;h3&gt;Flash the firmware&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./flash-mac.sh waveshare_amoled_216                       # auto-detects /dev/cu.usbmodem*
./flash-mac.sh waveshare_amoled_18  /dev/cu.usbmodem1101  # or pass an explicit USB serial port
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The board env name is required. Run &lt;code&gt;./flash-mac.sh&lt;/code&gt; with no args to see the available envs (scraped from &lt;code&gt;firmware/platformio.ini&lt;/code&gt;).&lt;/p&gt; 
&lt;h3&gt;Pair the device&lt;/h3&gt; 
&lt;p&gt;After flashing, open &lt;strong&gt;System Settings → Bluetooth&lt;/strong&gt; and click &lt;em&gt;Connect&lt;/em&gt; next to &quot;Clawdmeter&quot;. The daemon only ever connects to the peripheral this Mac is paired/connected to — it never scans for a nearby device — so once it&#39;s connected here the daemon picks it up on its next poll (~60 s).&lt;/p&gt; 
&lt;h3&gt;Install the daemon&lt;/h3&gt; 
&lt;p&gt;The daemon reads your Claude OAuth token from the macOS Keychain (service &lt;code&gt;Claude Code-credentials&lt;/code&gt;), polls usage every 60 s, and pushes it to the display over BLE.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./install-mac.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The installer creates a Python venv in &lt;code&gt;daemon/.venv/&lt;/code&gt;, installs &lt;code&gt;bleak&lt;/code&gt; and &lt;code&gt;httpx&lt;/code&gt;, renders a LaunchAgent into &lt;code&gt;~/Library/LaunchAgents/com.user.claude-usage-daemon.plist&lt;/code&gt;, and loads it. The first run is launched interactively so macOS prompts for Bluetooth permission.&lt;/p&gt; 
&lt;p&gt;Useful commands:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;launchctl list | grep claude-usage                                          # check it&#39;s running
tail -F ~/Library/Logs/claude-usage-daemon.out.log                          # live logs
launchctl unload ~/Library/LaunchAgents/com.user.claude-usage-daemon.plist  # stop
launchctl load -w ~/Library/LaunchAgents/com.user.claude-usage-daemon.plist # start
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Linux installation&lt;/h2&gt; 
&lt;h3&gt;Flash the firmware&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./flash.sh waveshare_amoled_216                  # defaults to /dev/ttyACM0
./flash.sh waveshare_amoled_18  /dev/ttyACM1     # or pass an explicit USB serial port
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The board env name is required. Run &lt;code&gt;./flash.sh&lt;/code&gt; with no args to see the available envs (scraped from &lt;code&gt;firmware/platformio.ini&lt;/code&gt;).&lt;/p&gt; 
&lt;h3&gt;Pair the device&lt;/h3&gt; 
&lt;p&gt;After flashing, the device advertises as &quot;Clawdmeter&quot;. Pair it once:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Scan for the device
bluetoothctl scan le

# When &quot;Clawdmeter&quot; appears, pair and trust it
bluetoothctl pair F4:12:FA:C0:8F:E5    # use your device&#39;s MAC
bluetoothctl trust F4:12:FA:C0:8F:E5
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To re-pair later, hold the power button for 3 seconds then release — the device clears its saved bond and re-advertises.&lt;/p&gt; 
&lt;h3&gt;Install the daemon&lt;/h3&gt; 
&lt;p&gt;The daemon polls your Claude usage every 60 seconds and sends it to the display over BLE.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./install.sh
systemctl --user start claude-usage-daemon
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Check status: &lt;code&gt;systemctl --user status claude-usage-daemon&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;View logs: &lt;code&gt;journalctl --user -u claude-usage-daemon -f&lt;/code&gt;&lt;/p&gt; 
&lt;h2&gt;Windows installation&lt;/h2&gt; 
&lt;p&gt;Runs natively on Windows — no WSL required. A system-tray app polls your usage and pushes it over BLE, and starts automatically at login.&lt;/p&gt; 
&lt;h3&gt;Prerequisites&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Native Windows&lt;/strong&gt; (not WSL).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Python 3.11+&lt;/strong&gt; from &lt;a href=&quot;https://www.python.org/downloads/&quot;&gt;python.org&lt;/a&gt; — check &lt;em&gt;&quot;Add python.exe to PATH&quot;&lt;/em&gt; during install.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; installed, with &lt;code&gt;claude login&lt;/code&gt; completed. The token is read from &lt;code&gt;%USERPROFILE%\.claude\.credentials.json&lt;/code&gt; (falling back to &lt;code&gt;%LOCALAPPDATA%\Claude\&lt;/code&gt; then &lt;code&gt;%APPDATA%\Claude\&lt;/code&gt;).&lt;/li&gt; 
 &lt;li&gt;The repo on a &lt;strong&gt;native Windows path&lt;/strong&gt; (e.g. &lt;code&gt;%USERPROFILE%\Clawdmeter&lt;/code&gt;), &lt;strong&gt;not&lt;/strong&gt; a &lt;code&gt;\\wsl$&lt;/code&gt; share — the installer refuses a WSL path.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Flash the firmware&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;pio run -d firmware -e waveshare_amoled_216 -t upload --upload-port COM5   # use your device&#39;s COM port
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Run &lt;code&gt;pio run -d firmware&lt;/code&gt; with no env to see the available board envs.&lt;/p&gt; 
&lt;h3&gt;Pair the device&lt;/h3&gt; 
&lt;p&gt;The device is a bonded BLE HID keyboard, so pair it once: &lt;strong&gt;Settings → Bluetooth &amp;amp; devices → Add device → Bluetooth&lt;/strong&gt;, then select &quot;Clawdmeter&quot;. Pairing is &lt;strong&gt;required&lt;/strong&gt; — it enables the physical buttons and keeps a persistent connection (the device keeps showing your last-synced usage even after the daemon quits). To undo, use &lt;strong&gt;Remove device&lt;/strong&gt; (this disables the buttons).&lt;/p&gt; 
&lt;h3&gt;Install the daemon (recommended)&lt;/h3&gt; 
&lt;p&gt;From the repo root in PowerShell:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;powershell -ExecutionPolicy Bypass -File install-windows.ps1
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This creates a venv, installs &lt;code&gt;bleak&lt;/code&gt;/&lt;code&gt;httpx&lt;/code&gt;/&lt;code&gt;pystray&lt;/code&gt;/&lt;code&gt;Pillow&lt;/code&gt; from the in-repo requirements (no internet downloads), registers a per-user login-autostart entry (&lt;code&gt;HKCU\…\Run&lt;/code&gt;, no admin needed), and launches the tray app headlessly (no console window).&lt;/p&gt; 
&lt;h3&gt;Run manually instead (optional)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;python -m venv .venv
.venv\Scripts\Activate.ps1        # if blocked: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned, then retry
pip install -r daemon\requirements-windows.txt
python daemon\claude_usage_daemon_windows.py        # runs in the foreground; Ctrl+C to stop
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Tray icon and menu&lt;/h3&gt; 
&lt;p&gt;The icon&#39;s corner bubble shows state — &lt;strong&gt;green&lt;/strong&gt; Connected, &lt;strong&gt;amber&lt;/strong&gt; Scanning, &lt;strong&gt;red&lt;/strong&gt; Error — and hovering shows the status (&lt;code&gt;Connected · last update HH:MM&lt;/code&gt;). A notification fires once when it enters Error (e.g. an expired token). Right-click for the menu:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Status header&lt;/strong&gt; — live state + last sync time.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Start at login&lt;/strong&gt; — toggle autostart on/off.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Quit&lt;/strong&gt; — stops the daemon cleanly; leaves the Windows pairing intact (device keeps its last reading).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Logs and troubleshooting&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Content $env:LOCALAPPDATA\Clawdmeter\daemon.log -Tail 30        # view logs
reg delete &quot;HKCU\Software\Microsoft\Windows\CurrentVersion\Run&quot; /v Clawdmeter /f   # remove autostart
&lt;/code&gt;&lt;/pre&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Symptom&lt;/th&gt; 
   &lt;th&gt;Fix&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Device not found&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Power on the device; make sure it&#39;s in range and paired.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;token expired&lt;/code&gt; toast / &lt;code&gt;API HTTP 401&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Re-run &lt;code&gt;claude login&lt;/code&gt;, then restart the daemon.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Connection failed&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Toggle Windows Bluetooth off/on in Settings.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Warning: running under Linux/WSL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Run from a native PowerShell window, not a WSL shell.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;How it works&lt;/h2&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/assets/readme/magnifier.gif&quot; width=&quot;150&quot; align=&quot;right&quot; alt=&quot;&quot; /&gt; 
&lt;ol&gt; 
 &lt;li&gt;The daemon reads your Claude Code OAuth token — from the macOS Keychain (service &lt;code&gt;Claude Code-credentials&lt;/code&gt;) on macOS, or from &lt;code&gt;~/.claude/.credentials.json&lt;/code&gt; on Linux (&lt;code&gt;%USERPROFILE%\.claude\.credentials.json&lt;/code&gt; on Windows).&lt;/li&gt; 
 &lt;li&gt;It makes a minimal API call to &lt;code&gt;api.anthropic.com/v1/messages&lt;/code&gt; — one token of Haiku, basically free.&lt;/li&gt; 
 &lt;li&gt;The usage numbers come straight out of the response headers (&lt;code&gt;anthropic-ratelimit-unified-5h-utilization&lt;/code&gt; and friends).&lt;/li&gt; 
 &lt;li&gt;The daemon connects to the ESP32 over BLE and writes a JSON payload to the GATT RX characteristic.&lt;/li&gt; 
 &lt;li&gt;The firmware parses it and updates the LVGL dashboard.&lt;/li&gt; 
 &lt;li&gt;The firmware also tracks the rate of change of session % over a 5-minute window and picks splash animations from the matching mood group.&lt;/li&gt; 
 &lt;li&gt;The two side buttons are independent of all of this — they send Space and Shift+Tab as BLE HID keyboard input to the paired host directly.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Physical buttons&lt;/h2&gt; 
&lt;p&gt;The board has three side buttons. Left and right send HID keys; the middle (PWR) button cycles splash animations and, held for 3 seconds, triggers pairing mode.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Button&lt;/th&gt; 
   &lt;th&gt;GPIO&lt;/th&gt; 
   &lt;th&gt;Function&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Left&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;GPIO 0&lt;/td&gt; 
   &lt;td&gt;Hold to send Space (Claude Code voice-mode push-to-talk)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Middle&lt;/strong&gt; (PWR)&lt;/td&gt; 
   &lt;td&gt;AXP2101 PKEY&lt;/td&gt; 
   &lt;td&gt;On splash: cycle animations. Hold 3s + release: pairing mode&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Right&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;GPIO 18&lt;/td&gt; 
   &lt;td&gt;Press to send Shift+Tab (Claude Code mode toggle)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Space and Shift+Tab go out as standard BLE HID keyboard reports, so they trigger in whatever window has focus on the paired host — not just Claude Code.&lt;/p&gt; 
&lt;h2&gt;BLE protocol&lt;/h2&gt; 
&lt;p&gt;The device advertises a custom GATT service alongside the standard HID keyboard service:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;UUID&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Data Service&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;4c41555a-4465-7669-6365-000000000001&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;RX Characteristic (write)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;4c41555a-4465-7669-6365-000000000002&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;TX Characteristic (notify)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;4c41555a-4465-7669-6365-000000000003&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;HID Service&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;00001812-0000-1000-8000-00805f9b34fb&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;JSON payload format (written to RX):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{ &quot;s&quot;: 45, &quot;sr&quot;: 120, &quot;w&quot;: 28, &quot;wr&quot;: 7200, &quot;st&quot;: &quot;allowed&quot;, &quot;ok&quot;: true }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Fields: &lt;code&gt;s&lt;/code&gt; = session %, &lt;code&gt;sr&lt;/code&gt; = session reset (minutes), &lt;code&gt;w&lt;/code&gt; = weekly %, &lt;code&gt;wr&lt;/code&gt; = weekly reset (minutes), &lt;code&gt;st&lt;/code&gt; = status, &lt;code&gt;ok&lt;/code&gt; = success flag.&lt;/p&gt; 
&lt;h2&gt;Development&lt;/h2&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/assets/readme/crab.gif&quot; width=&quot;120&quot; align=&quot;right&quot; alt=&quot;&quot; /&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Desktop simulator&lt;/strong&gt; — iterate on the UI without hardware: an SDL2 window runs the full firmware loop with scenario playback (&lt;code&gt;pio run -d firmware -e sim&lt;/code&gt;, then &lt;code&gt;cd firmware &amp;amp;&amp;amp; .pio/build/sim/program&lt;/code&gt;). See &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/SIM-USAGE.md&quot;&gt;&lt;code&gt;SIM-USAGE.md&lt;/code&gt;&lt;/a&gt; for controls, scenarios, and headless screenshots.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Splash animations&lt;/strong&gt; — Anthropic&#39;s official Clawd sprites, archived with provenance notes in &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/research/clawd-official/&quot;&gt;&lt;code&gt;research/clawd-official/&lt;/code&gt;&lt;/a&gt;; &lt;code&gt;node tools/convert_official_clawd.js&lt;/code&gt; regenerates &lt;code&gt;firmware/src/splash_animations.h&lt;/code&gt;. See &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/tools/README.md&quot;&gt;&lt;code&gt;tools/README.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Icons&lt;/strong&gt; — Lucide PNGs convert to LVGL C arrays with &lt;code&gt;tools/png_to_lvgl.js&lt;/code&gt;. See &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/tools/README.md&quot;&gt;&lt;code&gt;tools/README.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Fonts&lt;/strong&gt; — the pre-compiled LVGL fonts and the LVGL-9 patching they need: &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/docs/fonts.md&quot;&gt;&lt;code&gt;docs/fonts.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Porting&lt;/strong&gt; — &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/docs/porting/adding-a-board.md&quot;&gt;&lt;code&gt;docs/porting/adding-a-board.md&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/HermannBjorgvin/Clawdmeter/main/docs/porting/hal-contract.md&quot;&gt;&lt;code&gt;docs/porting/hal-contract.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Credits&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Pixel-art Clawd animations are Anthropic&#39;s official mascot art (&lt;a href=&quot;http://claude.ai/code&quot;&gt;claude.ai/code&lt;/a&gt;, Claude Code desktop), archived and converted by the tooling in &lt;code&gt;tools/&lt;/code&gt; and &lt;code&gt;research/clawd-official/&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Lucide icon set (&lt;a href=&quot;https://lucide.dev&quot;&gt;lucide.dev&lt;/a&gt;, MIT) for bluetooth and battery UI glyphs.&lt;/li&gt; 
 &lt;li&gt;Anthropic brand fonts (Tiempos Text, Styrene B) — see licensing warning below.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Licensing gray area warning&lt;/h2&gt; 
&lt;p&gt;The software in this repository uses and adheres to the Anthropic brand guidelines and uses the same proprietary fonts that Anthropic has a license for but this software uses without permission as well as using assets from Anthropic such as the copyrighted Clawd mascot so even though the code in this repo is non-proprietary I will not license it myself under a copyleft license since this repo includes proprietary fonts and copyrighted assets. Please be aware of this if you fork or copy the code from this repo. &lt;strong&gt;You have been warned!&lt;/strong&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>RfidResearchGroup/proxmark3</title>
      <link>https://github.com/RfidResearchGroup/proxmark3</link>
      <description>&lt;p&gt;Iceman Fork - Proxmark3&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Iceman Fork - Proxmark3&lt;/h1&gt; 
&lt;p&gt;The Proxmark3 is the swiss-army tool of RFID, allowing for interactions with the vast majority of RFID tags on a global scale. Originally built by Jonathan Westhues, the device is now the goto tool for RFID Analysis for the enthusiast. Iceman repository is considered to be the pinnacle of features and functionality, enabling a huge range of extremely useful and convenient commands and LUA scripts to automate chip identification, penetration testing, and programming&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Latest Release&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Coverity&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Contributors&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/rfidresearchgroup/proxmark3&quot; alt=&quot;Latest release&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://scan.coverity.com/projects/proxmark3-rrg-iceman-repo&quot;&gt;&lt;img src=&quot;https://scan.coverity.com/projects/19334/badge.svg?sanitize=true&quot; alt=&quot;Coverity Status&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/contributors/rfidresearchgroup/proxmark3&quot; alt=&quot;GitHub contributors&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Actions OSX CI&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Actions Ubuntu CI&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Actions Windows CI&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/actions/workflows/macos.yml&quot;&gt;&lt;img src=&quot;https://github.com/RfidResearchGroup/proxmark3/actions/workflows/macos.yml/badge.svg?branch=master&quot; alt=&quot;MacOS Build and Test&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/actions/workflows/ubuntu.yml&quot;&gt;&lt;img src=&quot;https://github.com/RfidResearchGroup/proxmark3/actions/workflows/ubuntu.yml/badge.svg?branch=master&quot; alt=&quot;Ubuntu Build and Test&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/actions/workflows/windows.yml&quot;&gt;&lt;img src=&quot;https://github.com/RfidResearchGroup/proxmark3/actions/workflows/windows.yml/badge.svg?branch=master&quot; alt=&quot;Windows Build and Test&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h1&gt;Table of Contents&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#iceman-fork---proxmark3&quot;&gt;Iceman Fork - Proxmark3&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#table-of-contents&quot;&gt;Table of Contents&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#proxmark3-installation-and-overview&quot;&gt;PROXMARK3 INSTALLATION AND OVERVIEW&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#notes--helpful-documents&quot;&gt;Notes / helpful documents&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#how-to-build&quot;&gt;How to build?&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#proxmark3-rdv4&quot;&gt;Proxmark3 RDV4&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#generic-proxmark3-platforms&quot;&gt;Generic Proxmark3 platforms&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#what-has-changed&quot;&gt;What has changed?&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#development&quot;&gt;Development&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#supported-operating-systems&quot;&gt;Supported operating systems&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#precompiled-binaries&quot;&gt;Precompiled binaries&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#proxmark3-gui&quot;&gt;Proxmark3 GUI&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#official-channels&quot;&gt;Official channels&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#maintainers&quot;&gt;Maintainers&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#citation&quot;&gt;Citation&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/#copyright-and-licensing-terms&quot;&gt;Copyright and licensing terms&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;PROXMARK3 INSTALLATION AND OVERVIEW&lt;/h1&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Installation&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Use of the Proxmark3&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/Linux-Installation-Instructions.md&quot;&gt;Linux - Setup and Build&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md&quot;&gt;Compilation Instructions&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md&quot;&gt;Linux - Important notes on ModemManager&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/1_Validation.md&quot;&gt;Validating Proxmark3 Client Functionality&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md&quot;&gt;macOS - Homebrew &amp;amp; Upgrading HomeBrew Tap Formula&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md&quot;&gt;First Use and Verification&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/macOS-MacPorts-Installation-Instructions.md&quot;&gt;macOS - MacPorts&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/3_Commands-and-Features.md&quot;&gt;Commands &amp;amp; Features&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/macOS-Compile-From-Source-Instructions.md&quot;&gt;macOS - Setup and Build&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/standalone/&quot;&gt;Standalone Modes&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/Windows-Installation-Instructions.md&quot;&gt;Windows - Setup and Build&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/termux_notes.md&quot;&gt;Termux / Android - Setup and Build&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/iOS-Installation-Instructions.md&quot;&gt;iOS - Setup and Build&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/bt_manual_v10.md&quot;&gt;Blue Shark Manual&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/cheatsheet.md&quot;&gt;Command Cheat Sheet&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md&quot;&gt;Advanced Compilation Parameters&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/wiki/More-cheat-sheets&quot;&gt;More Cheat Sheets&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Installation_Instructions/Troubleshooting.md&quot;&gt;Troubleshooting&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/commands.md&quot;&gt;Complete Client Command Set&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/jtag_notes.md&quot;&gt;JTAG&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/T5577_Guide.md&quot;&gt;T5577 Introduction Guide&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Notes / helpful documents&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Notes&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/uart_notes.md&quot;&gt;Notes on UART&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/termux_notes.md&quot;&gt;Notes on Termux / Android&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/path_notes.md&quot;&gt;Notes on paths&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/new_frame_format.md&quot;&gt;Notes on frame format&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/trace_notes.md&quot;&gt;Notes on tracelog / wireshark&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/emv_notes.md&quot;&gt;Notes on EMV&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/ext_flash_notes.md&quot;&gt;Notes on external flash&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/loclass_notes.md&quot;&gt;Notes on loclass&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Development/Coverity-Scan-Config-and-Run.md&quot;&gt;Notes on Coverity Scan Config &amp;amp; Run&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/extensions_notes.md&quot;&gt;Notes on file formats used with Proxmark3&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/mfu_binary_format_notes.md&quot;&gt;Notes on MFU binary format&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/fpga_arm_notes.md&quot;&gt;Notes on FPGA &amp;amp; ARM&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/armsrc/Standalone/readme.md&quot;&gt;Developing standalone mode&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/wiki/Standalone-mode&quot;&gt;Wiki about standalone mode&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/magic_cards_notes.md&quot;&gt;Notes on Magic UID cards&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/colors_notes.md&quot;&gt;Notes on Color usage&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Development/Makefile-vs-CMake.md&quot;&gt;Makefile vs CMake&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/cloner_notes.md&quot;&gt;Notes on Cloner guns&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/cliparser.md&quot;&gt;Notes on cliparser usage&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/clocks.md&quot;&gt;Notes on clocks&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/desfire.md&quot;&gt;Notes on MIFARE DESFire&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/cipurse.md&quot;&gt;Notes on CIPURSE&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/ndef_type4a.md&quot;&gt;Notes on NDEF type4a&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/unofficial_desfire_bible.md&quot;&gt;Unofficial MIFARE DESFire bible&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h1&gt;How to build?&lt;/h1&gt; 
&lt;h2&gt;Proxmark3 RDV4&lt;/h2&gt; 
&lt;p&gt;See the instruction links in the tables above to build, flash and run for your Proxmark3 RDV4 device.&lt;/p&gt; 
&lt;h2&gt;Generic Proxmark3 platforms&lt;/h2&gt; 
&lt;p&gt;In order to build this repo for generic Proxmark3 platforms we urge you to read &lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md&quot;&gt;Advanced compilation parameters&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;We define generic Proxmark3 platforms as following devices.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Supported&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;RDV1, RDV2, RDV3 easy&lt;/li&gt; 
 &lt;li&gt;Ryscorp green PCB version&lt;/li&gt; 
 &lt;li&gt;Radiowar black PCB version&lt;/li&gt; 
 &lt;li&gt;numerous Chinese adapted versions of the RDV3 easy (kkmoon, PiSwords etc)&lt;/li&gt; 
 &lt;li&gt;Proxmark3 SE (Special Edition) (BLE enabled)&lt;/li&gt; 
 &lt;li&gt;Proxmark3 X 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: Community tested&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: unknown device hw&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Not supported&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;⚠ Proxmark Evolution (EVO) 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: unknown pin assignments.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;⚠ Ryscorp Proxmark3 Pro 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: device has different fpga and unknown pin assignments.&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: Company have disappeared, leaving their customers in the dark.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Experimental support&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;⚠ iCopy-X 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: currently incompatible with iCopy-X GUI as Proxmark client commands using different syntax&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: see also &lt;a href=&quot;https://github.com/iCopy-X-Community/&quot;&gt;icopyx-community repos&lt;/a&gt; for upstream sources, reversed hw etc.&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: Uses DRM to lock down tags, ignores the open source licences. Use on your own risk.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;⚠ Proxmark3 Ultimate 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: unknown device hw&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: FPGA images is building for it. Use on your own risk.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Unknown support status&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;⚠ VX 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: unknown device hw&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;When it comes to these new unknown models we are depending on the community to report in if this repo works and what they did to make it work.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;256KB flash memory size of generic Proxmark3 platforms&lt;/strong&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;⚠ &lt;strong&gt;Note&lt;/strong&gt;: You need to keep a eye on how large your ARM chip built-in flash memory is. With 512KB you are fine but if its 256KB you need to compile this repo with even less functionality. When running the &lt;code&gt;./pm3-flash-all&lt;/code&gt; you can see which size your device have if you have the bootloader from this repo installed. Otherwise you will find the size reported in the start message when running the Proxmark3 client &lt;code&gt;./pm3&lt;/code&gt;.&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md#256KB-versions&quot;&gt;OBS! Read the 256KB flash memory advisory&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h1&gt;What has changed?&lt;/h1&gt; 
&lt;p&gt;Proxmark3 RDV4 hardware modifications:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;added flash memory 256KB&lt;/li&gt; 
 &lt;li&gt;added smart card module&lt;/li&gt; 
 &lt;li&gt;added FPC connector for peripherals such as Bluetooth+battery addon&lt;/li&gt; 
 &lt;li&gt;improved antennas 
  &lt;ul&gt; 
   &lt;li&gt;swappable&lt;/li&gt; 
   &lt;li&gt;LF Q factor switch&lt;/li&gt; 
   &lt;li&gt;LF 125/134 frequency switch&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;tiny PCB form factor&lt;/li&gt; 
 &lt;li&gt;ABS case&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;This repo vs official Proxmark3 repo:&lt;/p&gt; 
&lt;p&gt;See the &lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/CHANGELOG.md&quot;&gt;Changelog file&lt;/a&gt; which we try to keep updated.&lt;/p&gt; 
&lt;p&gt;In short this repo gives you a completely different user experience when it comes to Proxmark3.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Supports command tab complete&lt;/li&gt; 
 &lt;li&gt;Richer CLI with use of colors / emojis&lt;/li&gt; 
 &lt;li&gt;Help text system implemented everywhere&lt;/li&gt; 
 &lt;li&gt;Hints system&lt;/li&gt; 
 &lt;li&gt;User preference settings&lt;/li&gt; 
 &lt;li&gt;Extensive testing with continuous integration build systems on Linux, OSX and Windows, and regular usage of static analysis tools like 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://scan.coverity.com/projects/proxmark3-rrg-iceman-repo/&quot;&gt;Coverity Scan&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Cppcheck (v2.6)&lt;/li&gt; 
   &lt;li&gt;GCC and Clang aggressive enforcement of diagnostic flags&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Auto detection of serial ports and seamless integration with Bluetooth addon&lt;/li&gt; 
 &lt;li&gt;Reconnect to device from inside client&lt;/li&gt; 
 &lt;li&gt;Supports tearoff attacks&lt;/li&gt; 
 &lt;li&gt;Supports NFC NDEF type1, type2, type4a, type4b, mifare, barcode&lt;/li&gt; 
 &lt;li&gt;Supports pm3 client scripts, lua scripts, python scripts&lt;/li&gt; 
 &lt;li&gt;Most comprehensive collection of scripts available&lt;/li&gt; 
 &lt;li&gt;Wiegand encoding, decoding.&lt;/li&gt; 
 &lt;li&gt;Supports EMV&lt;/li&gt; 
 &lt;li&gt;Supports CIPURSE&lt;/li&gt; 
 &lt;li&gt;Most standalone modes available with easy compilation&lt;/li&gt; 
 &lt;li&gt;Extensive test script for client and external tools&lt;/li&gt; 
 &lt;li&gt;Most comprehensive compiled known keys dictionaries&lt;/li&gt; 
 &lt;li&gt;Slimed down usb communications with NG-frames&lt;/li&gt; 
 &lt;li&gt;The most compiled public known key recovery software&lt;/li&gt; 
 &lt;li&gt;The fastest implementations of said software&lt;/li&gt; 
 &lt;li&gt;Support multiple fileformats for dump files (BIN/EML/JSON)&lt;/li&gt; 
 &lt;li&gt;Interoperability of said fileformats with libnfc, MFC tool app etc&lt;/li&gt; 
 &lt;li&gt;Supports more RFID based protocols than ever&lt;/li&gt; 
 &lt;li&gt;Easy install for package maintainers, distro maintainers&lt;/li&gt; 
 &lt;li&gt;Supports cmake, make&lt;/li&gt; 
 &lt;li&gt;Builds without errors or warnings on more OS/platforms than ever&lt;/li&gt; 
 &lt;li&gt;Available as package on known distros like Gentoo, Kali, Termux, Macports, Homebrew&lt;/li&gt; 
 &lt;li&gt;Much more documentation&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;Development&lt;/h1&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;⚠ &lt;strong&gt;Note&lt;/strong&gt;: This is a bleeding edge repository. The maintainers actively is working out of this repository and will be periodically re-structuring the code to make it easier to comprehend, navigate, build, test, and contribute to, so &lt;strong&gt;DO expect significant changes to code layout on a regular basis&lt;/strong&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;👉 &lt;strong&gt;Remember!&lt;/strong&gt; If you intend to contribute to the code, please read the &lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/CONTRIBUTING.md&quot;&gt;coding style notes&lt;/a&gt; first. We usually merge your contributions fast since we do like the idea of getting a functionality in the Proxmark3 and weed out the bugs afterwards.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;The &lt;a href=&quot;https://github.com/RfidResearchGroup/proxmark3/wiki/Public-Roadmap&quot;&gt;public roadmap&lt;/a&gt; is an excellent start to read if you are interesting in contributing.&lt;/p&gt; 
&lt;h2&gt;Supported operating systems&lt;/h2&gt; 
&lt;p&gt;This repo compiles nicely on&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;WSL1 on Windows 10&lt;/li&gt; 
 &lt;li&gt;WSL2 on Windows 10/11&lt;/li&gt; 
 &lt;li&gt;Proxspace environment &lt;a href=&quot;https://github.com/Gator96100/ProxSpace/releases&quot;&gt;release v3.xx&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Windows/MinGW environment&lt;/li&gt; 
 &lt;li&gt;Ubuntu, ParrotOS, Gentoo, Pentoo, Kali, NetHunter, Arch Linux, Fedora, Debian, Raspbian&lt;/li&gt; 
 &lt;li&gt;Android / Termux&lt;/li&gt; 
 &lt;li&gt;macOS / Homebrew (or MacPorts, experimental) / Apple Silicon M1&lt;/li&gt; 
 &lt;li&gt;iOS (Jailbroken, rootful)&lt;/li&gt; 
 &lt;li&gt;Docker container 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://hub.docker.com/r/secopsconsult/proxmark3&quot;&gt; Iceman repo based ubuntu 18.04 container &lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://hub.docker.com/r/iceman1001/proxmark3/&quot;&gt; Iceman fork based container v1.7 &lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Precompiled binaries&lt;/h2&gt; 
&lt;p&gt;See &lt;a href=&quot;https://www.proxmarkbuilds.org/&quot;&gt;Proxmark3 precompiled builds&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Proxmark3 GUI&lt;/h2&gt; 
&lt;p&gt;The official PM3-GUI from Gaucho will not work. Not to mention is quite old and not maintained any longer.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/burma69/PM3UniversalGUI&quot;&gt;Proxmark3 Universal GUI&lt;/a&gt; will work more or less.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/wh201906/Proxmark3GUI/&quot;&gt;Proxmark3 GUI cross-compiled&lt;/a&gt; which is recently updated and claims to support latest source of this repo.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/Phreak87/Proxmark3_GUI&quot;&gt;Proxmark3_GUI&lt;/a&gt; simple gui in &lt;a href=&quot;http://vb.net&quot;&gt;vb.net&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Official channels&lt;/h2&gt; 
&lt;p&gt;Where do you find the community?&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://t.ly/d4_C&quot;&gt;RFID Hacking community discord server&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://web.libera.chat/?channels=#proxmark3&quot;&gt;Proxmark3 IRC channel&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/proxmark3/&quot;&gt;Proxmark3 sub reddit&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://www.proxmark.org/forum/index.php&quot;&gt;Proxmark3 forum&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Maintainers&lt;/h2&gt; 
&lt;p&gt;To all distro, package maintainers, we tried to make your life easier.&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;make install&lt;/code&gt; is now available and if you want to know more.&lt;/p&gt; 
&lt;p&gt;This document will be helpful for you&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/doc/md/Development/Maintainers.md&quot;&gt;Notes for maintainers&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Citation&lt;/h2&gt; 
&lt;p&gt;Use this bibtex to cite this repository globally:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@misc{proxmark3,
  author = {C. {Herrmann} and P. {Teuwen} and O. {Moiseenko} and M. {Walker} and others},
  title = {{Proxmark3 -- Iceman repo}},
  howpublished = {\url{https://github.com/RfidResearchGroup/proxmark3}},
  keywords = {rfid nfc iceman proxmark3 125khz 134khz 13.56mhz},
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you need to refer to a specific state of the repository, use a commit number or a date of access, e.g.:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  note = {Accessed: commit 12327f71a27da23831901847886aaf20e8ad3ca0}
  note = {Accessed: 2021-01-01}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Copyright and licensing terms&lt;/h2&gt; 
&lt;p&gt;Each contribution is under the copyright of its author. See &lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/AUTHORS.md&quot;&gt;AUTHORS&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;The Proxmark3 source code is covered by the following licensing terms, usually referred as &lt;strong&gt;GPLv3 or later&lt;/strong&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;A copy of the GPLv3 is available in &lt;a href=&quot;https://raw.githubusercontent.com/RfidResearchGroup/proxmark3/master/LICENSE.txt&quot;&gt;LICENSE&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Some dependencies may be under other free licensing terms compatible with the Proxmark3 licensing terms, see their respective description.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>facebook/zstd</title>
      <link>https://github.com/facebook/zstd</link>
      <description>&lt;p&gt;Zstandard - Fast real-time compression algorithm&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/zstd_logo86.png&quot; alt=&quot;Zstandard&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Zstandard&lt;/strong&gt;, or &lt;code&gt;zstd&lt;/code&gt; as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios. It&#39;s backed by a very fast entropy stage, provided by &lt;a href=&quot;https://github.com/Cyan4973/FiniteStateEntropy&quot;&gt;Huff0 and FSE library&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Zstandard&#39;s format is stable and documented in &lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc8878&quot;&gt;RFC8878&lt;/a&gt;. Multiple independent implementations are already available. This repository represents the reference implementation, provided as an open-source dual &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/LICENSE&quot;&gt;BSD&lt;/a&gt; OR &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/COPYING&quot;&gt;GPLv2&lt;/a&gt; licensed &lt;strong&gt;C&lt;/strong&gt; library, and a command line utility producing and decoding &lt;code&gt;.zst&lt;/code&gt;, &lt;code&gt;.gz&lt;/code&gt;, &lt;code&gt;.xz&lt;/code&gt; and &lt;code&gt;.lz4&lt;/code&gt; files. Should your project require another programming language, a list of known ports and bindings is provided on &lt;a href=&quot;https://facebook.github.io/zstd/#other-languages&quot;&gt;Zstandard homepage&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Development branch status:&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://travis-ci.com/facebook/zstd&quot;&gt;&lt;img src=&quot;https://api.travis-ci.com/facebook/zstd.svg?branch=dev&quot; alt=&quot;Build Status&quot; title=&quot;Continuous Integration test suite&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://circleci.com/gh/facebook/zstd&quot;&gt;&lt;img src=&quot;https://circleci.com/gh/facebook/zstd/tree/dev.svg?style=shield&quot; alt=&quot;Build status&quot; title=&quot;Short test suite&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cirrus-ci.com/github/facebook/zstd&quot;&gt;&lt;img src=&quot;https://api.cirrus-ci.com/github/facebook/zstd.svg?branch=dev&quot; alt=&quot;Build status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&amp;amp;can=1&amp;amp;q=proj:zstd&quot;&gt;&lt;img src=&quot;https://oss-fuzz-build-logs.storage.googleapis.com/badges/zstd.svg?sanitize=true&quot; alt=&quot;Fuzzing Status&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Benchmarks&lt;/h2&gt; 
&lt;p&gt;For reference, several fast compression algorithms were tested and compared on a desktop featuring a Core i7-9700K CPU @ 4.9GHz and running Ubuntu 24.04 (&lt;code&gt;Linux 6.8.0-53-generic&lt;/code&gt;), using &lt;a href=&quot;https://github.com/inikep/lzbench&quot;&gt;lzbench&lt;/a&gt;, an open-source in-memory benchmark by @inikep compiled with &lt;a href=&quot;https://gcc.gnu.org/&quot;&gt;gcc&lt;/a&gt; 14.2.0, on the &lt;a href=&quot;https://sun.aei.polsl.pl//~sdeor/index.php?page=silesia&quot;&gt;Silesia compression corpus&lt;/a&gt;.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Compressor name&lt;/th&gt; 
   &lt;th&gt;Ratio&lt;/th&gt; 
   &lt;th&gt;Compression&lt;/th&gt; 
   &lt;th&gt;Decompress.&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;zstd 1.5.7 -1&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;2.896&lt;/td&gt; 
   &lt;td&gt;510 MB/s&lt;/td&gt; 
   &lt;td&gt;1550 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;brotli 1.1.0 -1&lt;/td&gt; 
   &lt;td&gt;2.883&lt;/td&gt; 
   &lt;td&gt;290 MB/s&lt;/td&gt; 
   &lt;td&gt;425 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://www.zlib.net/&quot;&gt;zlib&lt;/a&gt; 1.3.1 -1&lt;/td&gt; 
   &lt;td&gt;2.743&lt;/td&gt; 
   &lt;td&gt;105 MB/s&lt;/td&gt; 
   &lt;td&gt;390 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;zstd 1.5.7 --fast=1&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;2.439&lt;/td&gt; 
   &lt;td&gt;545 MB/s&lt;/td&gt; 
   &lt;td&gt;1850 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;quicklz 1.5.0 -1&lt;/td&gt; 
   &lt;td&gt;2.238&lt;/td&gt; 
   &lt;td&gt;520 MB/s&lt;/td&gt; 
   &lt;td&gt;750 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;zstd 1.5.7 --fast=4&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;2.146&lt;/td&gt; 
   &lt;td&gt;665 MB/s&lt;/td&gt; 
   &lt;td&gt;2050 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;lzo1x 2.10 -1&lt;/td&gt; 
   &lt;td&gt;2.106&lt;/td&gt; 
   &lt;td&gt;650 MB/s&lt;/td&gt; 
   &lt;td&gt;780 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://lz4.github.io/lz4/&quot;&gt;lz4&lt;/a&gt; 1.10.0&lt;/td&gt; 
   &lt;td&gt;2.101&lt;/td&gt; 
   &lt;td&gt;675 MB/s&lt;/td&gt; 
   &lt;td&gt;3850 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;snappy 1.2.1&lt;/td&gt; 
   &lt;td&gt;2.089&lt;/td&gt; 
   &lt;td&gt;520 MB/s&lt;/td&gt; 
   &lt;td&gt;1500 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;lzf 3.6 -1&lt;/td&gt; 
   &lt;td&gt;2.077&lt;/td&gt; 
   &lt;td&gt;410 MB/s&lt;/td&gt; 
   &lt;td&gt;820 MB/s&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The negative compression levels, specified with &lt;code&gt;--fast=#&lt;/code&gt;, offer faster compression and decompression speed at the cost of compression ratio.&lt;/p&gt; 
&lt;p&gt;Zstd can also offer stronger compression ratios at the cost of compression speed. Speed vs Compression trade-off is configurable by small increments. Decompression speed is preserved and remains roughly the same at all settings, a property shared by most LZ compression algorithms, such as &lt;a href=&quot;https://www.zlib.net/&quot;&gt;zlib&lt;/a&gt; or lzma.&lt;/p&gt; 
&lt;p&gt;The following tests were run on a server running Linux Debian (&lt;code&gt;Linux version 4.14.0-3-amd64&lt;/code&gt;) with a Core i7-6700K CPU @ 4.0GHz, using &lt;a href=&quot;https://github.com/inikep/lzbench&quot;&gt;lzbench&lt;/a&gt;, an open-source in-memory benchmark by @inikep compiled with &lt;a href=&quot;https://gcc.gnu.org/&quot;&gt;gcc&lt;/a&gt; 7.3.0, on the &lt;a href=&quot;https://sun.aei.polsl.pl//~sdeor/index.php?page=silesia&quot;&gt;Silesia compression corpus&lt;/a&gt;.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Compression Speed vs Ratio&lt;/th&gt; 
   &lt;th&gt;Decompression Speed&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/CSpeed2.png&quot; alt=&quot;Compression Speed vs Ratio&quot; title=&quot;Compression Speed vs Ratio&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/DSpeed3.png&quot; alt=&quot;Decompression Speed&quot; title=&quot;Decompression Speed&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;A few other algorithms can produce higher compression ratios at slower speeds, falling outside of the graph. For a larger picture including slow modes, &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/DCspeed5.png&quot;&gt;click on this link&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;The case for Small Data compression&lt;/h2&gt; 
&lt;p&gt;Previous charts provide results applicable to typical file and stream scenarios (several MB). Small data comes with different perspectives.&lt;/p&gt; 
&lt;p&gt;The smaller the amount of data to compress, the more difficult it is to compress. This problem is common to all compression algorithms, and reason is, compression algorithms learn from past data how to compress future data. But at the beginning of a new data set, there is no &quot;past&quot; to build upon.&lt;/p&gt; 
&lt;p&gt;To solve this situation, Zstd offers a &lt;strong&gt;training mode&lt;/strong&gt;, which can be used to tune the algorithm for a selected type of data. Training Zstandard is achieved by providing it with a few samples (one file per sample). The result of this training is stored in a file called &quot;dictionary&quot;, which must be loaded before compression and decompression. Using this dictionary, the compression ratio achievable on small data improves dramatically.&lt;/p&gt; 
&lt;p&gt;The following example uses the &lt;code&gt;github-users&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/zstd/releases/tag/v1.1.3&quot;&gt;sample set&lt;/a&gt;, created from &lt;a href=&quot;https://developer.github.com/v3/users/#get-all-users&quot;&gt;github public API&lt;/a&gt;. It consists of roughly 10K records weighing about 1KB each.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Compression Ratio&lt;/th&gt; 
   &lt;th&gt;Compression Speed&lt;/th&gt; 
   &lt;th&gt;Decompression Speed&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/dict-cr.png&quot; alt=&quot;Compression Ratio&quot; title=&quot;Compression Ratio&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/dict-cs.png&quot; alt=&quot;Compression Speed&quot; title=&quot;Compression Speed&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/dict-ds.png&quot; alt=&quot;Decompression Speed&quot; title=&quot;Decompression Speed&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;These compression gains are achieved while simultaneously providing &lt;em&gt;faster&lt;/em&gt; compression and decompression speeds.&lt;/p&gt; 
&lt;p&gt;Training works if there is some correlation in a family of small data samples. The more data-specific a dictionary is, the more efficient it is (there is no &lt;em&gt;universal dictionary&lt;/em&gt;). Hence, deploying one dictionary per type of data will provide the greatest benefits. Dictionary gains are mostly effective in the first few KB. Then, the compression algorithm will gradually use previously decoded content to better compress the rest of the file.&lt;/p&gt; 
&lt;h3&gt;Dictionary compression How To:&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Create the dictionary&lt;/p&gt; &lt;p&gt;&lt;code&gt;zstd --train FullPathToTrainingSet/* -o dictionaryName&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Compress with dictionary&lt;/p&gt; &lt;p&gt;&lt;code&gt;zstd -D dictionaryName FILE&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Decompress with dictionary&lt;/p&gt; &lt;p&gt;&lt;code&gt;zstd -D dictionaryName --decompress FILE.zst&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Build instructions&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;make&lt;/code&gt; is the main build system of this project. It is the reference, and other build systems are periodically updated to stay compatible. However, small drifts and feature differences can be present, since perfect synchronization is difficult. For this reason, when your build system allows it, prefer employing &lt;code&gt;make&lt;/code&gt;.&lt;/p&gt; 
&lt;h3&gt;Makefile&lt;/h3&gt; 
&lt;p&gt;Assuming your system supports standard &lt;code&gt;make&lt;/code&gt; (or &lt;code&gt;gmake&lt;/code&gt;), just invoking &lt;code&gt;make&lt;/code&gt; in root directory generates &lt;code&gt;zstd&lt;/code&gt; cli at root, and also generates &lt;code&gt;libzstd&lt;/code&gt; into &lt;code&gt;lib/&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Other standard targets include:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;make install&lt;/code&gt; : install zstd cli, library and man pages&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;make check&lt;/code&gt; : run &lt;code&gt;zstd&lt;/code&gt;, test its essential behavior on local platform&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The &lt;code&gt;Makefile&lt;/code&gt; follows the &lt;a href=&quot;https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html&quot;&gt;GNU Standard Makefile conventions&lt;/a&gt;, allowing staged install, standard compilation flags, directory variables and command variables.&lt;/p&gt; 
&lt;p&gt;For advanced use cases, specialized flags which control binary generation and installation paths are documented in &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/lib/README.md#modular-build&quot;&gt;&lt;code&gt;lib/README.md&lt;/code&gt;&lt;/a&gt; for the &lt;code&gt;libzstd&lt;/code&gt; library and in &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/programs/README.md#compilation-variables&quot;&gt;&lt;code&gt;programs/README.md&lt;/code&gt;&lt;/a&gt; for the &lt;code&gt;zstd&lt;/code&gt; CLI.&lt;/p&gt; 
&lt;h3&gt;cmake&lt;/h3&gt; 
&lt;p&gt;A &lt;code&gt;cmake&lt;/code&gt; project generator is available for generating Makefiles or other build scripts to create the &lt;code&gt;zstd&lt;/code&gt; binary as well as &lt;code&gt;libzstd&lt;/code&gt; dynamic and static libraries. The repository root now contains a minimal &lt;code&gt;CMakeLists.txt&lt;/code&gt; that forwards to &lt;code&gt;build/cmake&lt;/code&gt;, so you can configure the project with a standard &lt;code&gt;cmake -S .&lt;/code&gt; invocation, while the historical &lt;code&gt;cmake -S build/cmake&lt;/code&gt; entry point remains fully supported.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cmake -S . -B build-cmake
cmake --build build-cmake
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;By default, &lt;code&gt;CMAKE_BUILD_TYPE&lt;/code&gt; is set to &lt;code&gt;Release&lt;/code&gt;.&lt;/p&gt; 
&lt;h4&gt;Support for Fat (Universal2) Output&lt;/h4&gt; 
&lt;p&gt;&lt;code&gt;zstd&lt;/code&gt; can be built and installed with support for both Apple Silicon (M1/M2) as well as Intel by using CMake&#39;s Universal2 support. To perform a Fat/Universal2 build and install use the following commands:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cmake -S . -B build-cmake-debug -G Ninja -DCMAKE_OSX_ARCHITECTURES=&quot;x86_64;x86_64h;arm64&quot;
cd build-cmake-debug
ninja
sudo ninja install
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Meson&lt;/h3&gt; 
&lt;p&gt;A Meson project is provided within &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/build/meson&quot;&gt;&lt;code&gt;build/meson&lt;/code&gt;&lt;/a&gt;. Follow build instructions in that directory.&lt;/p&gt; 
&lt;p&gt;You can also take a look at &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/.travis.yml&quot;&gt;&lt;code&gt;.travis.yml&lt;/code&gt;&lt;/a&gt; file for an example about how Meson is used to build this project.&lt;/p&gt; 
&lt;p&gt;Note that default build type is &lt;strong&gt;release&lt;/strong&gt;.&lt;/p&gt; 
&lt;h3&gt;VCPKG&lt;/h3&gt; 
&lt;p&gt;You can build and install zstd &lt;a href=&quot;https://github.com/Microsoft/vcpkg/&quot;&gt;vcpkg&lt;/a&gt; dependency manager:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install zstd
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The zstd port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please &lt;a href=&quot;https://github.com/Microsoft/vcpkg&quot;&gt;create an issue or pull request&lt;/a&gt; on the vcpkg repository.&lt;/p&gt; 
&lt;h3&gt;Conan&lt;/h3&gt; 
&lt;p&gt;You can install pre-built binaries for zstd or build it from source using &lt;a href=&quot;https://conan.io/&quot;&gt;Conan&lt;/a&gt;. Use the following command:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;conan install --requires=&quot;zstd/[*]&quot; --build=missing
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The zstd Conan recipe is kept up to date by Conan maintainers and community contributors. If the version is out of date, please &lt;a href=&quot;https://github.com/conan-io/conan-center-index&quot;&gt;create an issue or pull request&lt;/a&gt; on the ConanCenterIndex repository.&lt;/p&gt; 
&lt;h3&gt;Visual Studio (Windows)&lt;/h3&gt; 
&lt;p&gt;Going into &lt;code&gt;build&lt;/code&gt; directory, you will find additional possibilities:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Projects for Visual Studio 2008 and 2010. 
  &lt;ul&gt; 
   &lt;li&gt;VS2010 project is compatible with VS2012, VS2013, VS2015 and VS2017.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Automated build scripts for Visual compiler by &lt;a href=&quot;https://github.com/KrzysFR&quot;&gt;@KrzysFR&lt;/a&gt;, in &lt;code&gt;build/VS_scripts&lt;/code&gt;, which will build &lt;code&gt;zstd&lt;/code&gt; cli and &lt;code&gt;libzstd&lt;/code&gt; library without any need to open Visual Studio solution.&lt;/li&gt; 
 &lt;li&gt;It is now recommended to generate Visual Studio solutions from &lt;code&gt;cmake&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Buck&lt;/h3&gt; 
&lt;p&gt;You can build the zstd binary via buck by executing: &lt;code&gt;buck build programs:zstd&lt;/code&gt; from the root of the repo. The output binary will be in &lt;code&gt;buck-out/gen/programs/&lt;/code&gt;.&lt;/p&gt; 
&lt;h3&gt;Bazel&lt;/h3&gt; 
&lt;p&gt;You can integrate zstd into your Bazel project by using the module hosted on the &lt;a href=&quot;https://registry.bazel.build/modules/zstd&quot;&gt;Bazel Central Repository&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Testing&lt;/h2&gt; 
&lt;p&gt;You can run quick local smoke tests by running &lt;code&gt;make check&lt;/code&gt;. If you can&#39;t use &lt;code&gt;make&lt;/code&gt;, execute the &lt;code&gt;playTest.sh&lt;/code&gt; script from the &lt;code&gt;src/tests&lt;/code&gt; directory. Two env variables &lt;code&gt;$ZSTD_BIN&lt;/code&gt; and &lt;code&gt;$DATAGEN_BIN&lt;/code&gt; are needed for the test script to locate the &lt;code&gt;zstd&lt;/code&gt; and &lt;code&gt;datagen&lt;/code&gt; binary. For information on CI testing, please refer to &lt;code&gt;TESTING.md&lt;/code&gt;.&lt;/p&gt; 
&lt;h2&gt;Status&lt;/h2&gt; 
&lt;p&gt;Zstandard is deployed within Meta and many other large cloud infrastructures, to compress humongous amounts of data in various formats and use cases. It is also continuously fuzzed for security issues by Google&#39;s &lt;a href=&quot;https://github.com/google/oss-fuzz/tree/master/projects/zstd&quot;&gt;oss-fuzz&lt;/a&gt; program.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;Zstandard is dual-licensed under &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/LICENSE&quot;&gt;BSD&lt;/a&gt; OR &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/COPYING&quot;&gt;GPLv2&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;The &lt;code&gt;dev&lt;/code&gt; branch is the one where all contributions are merged before reaching &lt;code&gt;release&lt;/code&gt;. Direct commit to &lt;code&gt;release&lt;/code&gt; are not permitted. For more information, please read &lt;a href=&quot;https://raw.githubusercontent.com/facebook/zstd/dev/CONTRIBUTING.md&quot;&gt;CONTRIBUTING&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>darktable-org/darktable</title>
      <link>https://github.com/darktable-org/darktable</link>
      <description>&lt;p&gt;darktable is an open source photography workflow application and raw developer&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;&lt;a href=&quot;https://www.darktable.org/&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/data/pixmaps/idbutton.png?raw=true&quot; alt=&quot;icon&quot; /&gt;&lt;/a&gt; darktable &lt;a href=&quot;https://github.com/darktable-org/darktable/actions/workflows/ci.yml?query=branch%3Amaster+is%3Acompleted+event%3Apush&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/darktable-org/darktable/ci.yml?branch=master&quot; alt=&quot;GitHub Workflow Status (branch)&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://bestpractices.coreinfrastructure.org/projects/470&quot;&gt;&lt;img src=&quot;https://bestpractices.coreinfrastructure.org/projects/470/badge&quot; alt=&quot;CII Best Practices&quot; /&gt;&lt;/a&gt;&lt;/h1&gt; 
&lt;p&gt;darktable is an open source photography workflow application and non-destructive raw developer - a virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images, enhance them and export them to local or remote storage.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/45535283/148689197-e53dd75f-32f1-4297-9a0f-a9547fd4e7c7.jpg&quot; alt=&quot;screenshot_lighttable&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;darktable is &lt;strong&gt;not&lt;/strong&gt; a free Adobe® Lightroom® replacement.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://www.darktable.org/&quot; title=&quot;darktable homepage&quot;&gt;https://www.darktable.org/&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#documentation&quot;&gt;Documentation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#website&quot;&gt;Website&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#requirements&quot;&gt;Requirements&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#supported-platforms&quot;&gt;Supported platforms&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#hardware&quot;&gt;Hardware&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#ai-features-optional&quot;&gt;AI features (optional)&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#installing&quot;&gt;Installing&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#latest-release&quot;&gt;Latest release&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#development-snapshot&quot;&gt;Development snapshot&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#updating-from-older-versions&quot;&gt;Updating from older versions&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#obtaining-extensions&quot;&gt;Obtaining extensions&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#building&quot;&gt;Building&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#dependencies&quot;&gt;Dependencies&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#get-the-source&quot;&gt;Get the source&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#get-submodules&quot;&gt;Get submodules&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#compile&quot;&gt;Compile&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#further-reading&quot;&gt;Further reading&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#using&quot;&gt;Using&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#testunstable-version&quot;&gt;Test/unstable version&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#regularstable-version&quot;&gt;Regular/stable version&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#contributing&quot;&gt;Contributing&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#faq&quot;&gt;FAQ&lt;/a&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#why-is-my-camera-not-detected-when-plugged-in-&quot;&gt;Why is my camera not detected when plugged-in ?&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#why-is-my-lens-not-detectedcorrected-in-darkroom-&quot;&gt;Why is my lens not detected/corrected in darkroom ?&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#why-do-the-thumbnails-in-the-lighttable-view-look-different-to-the-preview-in-the-darkroom-view-&quot;&gt;Why do the thumbnails in the lighttable view look different to the preview in the darkroom view ?&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;ol start=&quot;11&quot;&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#wiki&quot;&gt;Wiki&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;The darktable user manual is maintained in the &lt;a href=&quot;https://github.com/darktable-org/dtdocs&quot;&gt;dtdocs&lt;/a&gt; repository.&lt;/p&gt; 
&lt;p&gt;Lua API documentation is maintained in the &lt;a href=&quot;https://github.com/darktable-org/luadocs&quot;&gt;luadocs&lt;/a&gt; repository.&lt;/p&gt; 
&lt;h2&gt;Website&lt;/h2&gt; 
&lt;p&gt;The website (&lt;a href=&quot;https://www.darktable.org/&quot;&gt;https://www.darktable.org/&lt;/a&gt;) is maintained in the &lt;a href=&quot;https://github.com/darktable-org/dtorg&quot;&gt;dtorg&lt;/a&gt; repository.&lt;/p&gt; 
&lt;h2&gt;Requirements&lt;/h2&gt; 
&lt;h3&gt;Supported platforms&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Linux&lt;/li&gt; 
 &lt;li&gt;FreeBSD&lt;/li&gt; 
 &lt;li&gt;NetBSD&lt;/li&gt; 
 &lt;li&gt;OpenBSD&lt;/li&gt; 
 &lt;li&gt;Windows 10 and later&lt;/li&gt; 
 &lt;li&gt;Apple Silicon Macs running macOS 14 and later&lt;/li&gt; 
 &lt;li&gt;Intel Macs running macOS 15 and later&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;Big-endian platforms are not supported.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;32-bit platforms are not officially supported - they might or might not work.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;Both darktable and the libraries it uses are developed on the Linux platform. Therefore, other platforms MAY have additional bugs that are not present in the Linux version. In addition, for example, on the Windows platform, printing support is not currently implemented. So we recommend, if you have a choice of platform, to use darktable on Linux.&lt;/em&gt;&lt;/p&gt; 
&lt;h3&gt;Hardware&lt;/h3&gt; 
&lt;p&gt;(workable minimum / &lt;strong&gt;recommended minimum&lt;/strong&gt;):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;RAM: 4 GB / &lt;strong&gt;8 GB&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;CPU: Intel Pentium 4 (Core 2 for Windows) / &lt;strong&gt;Intel Core i5 4×2.4 GHz&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;GPU: none / &lt;strong&gt;Nvidia with 1024 CUDA cores, 4 GB, OpenCL 1.2 compatible&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;free disk space: 250 MB / &lt;strong&gt;1 GB&lt;/strong&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;darktable can run on lightweight configurations (even on a Raspberry Pi), but expect modules like denoise, local contrast, contrast equalizer, retouch or liquify to be slow beyond usable.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;A GPU is not mandatory but is strongly recommended for a smoother experience. Nvidia GPUs are recommended for safety because some AMD drivers behave unreliably with some modules (e.g. local contrast).&lt;/em&gt;&lt;/p&gt; 
&lt;h3&gt;AI features (optional)&lt;/h3&gt; 
&lt;p&gt;Darktable includes optional AI-powered features such as object masks, denoise and upscale. These require building with &lt;code&gt;-DUSE_AI=ON&lt;/code&gt; (off by default), or &lt;code&gt;--enable-ai&lt;/code&gt; when building with the build helper script &lt;code&gt;build.sh&lt;/code&gt;. AI features are disabled by default in preferences and must be enabled by the user. Models are downloaded from the AI tab in preferences (default repository: &lt;a href=&quot;https://github.com/darktable-org/darktable-ai&quot;&gt;darktable-org/darktable-ai&lt;/a&gt;).&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;CPU inference&lt;/strong&gt; is bundled and works out of the box - no additional software is needed. On macOS (Apple Silicon), CoreML acceleration and on Windows, DirectML GPU acceleration are also bundled by default. Processing on CPU is slower than GPU but requires no special hardware.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;GPU acceleration&lt;/strong&gt; significantly speeds up AI inference but requires installing a GPU-enabled build of &lt;a href=&quot;https://onnxruntime.ai/&quot;&gt;ONNX Runtime&lt;/a&gt; separately:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;NVIDIA (CUDA):&lt;/strong&gt; Linux and Windows. 
  &lt;ul&gt; 
   &lt;li&gt;Supported NVIDIA GPU with up-to-date drivers (Maxwell or newer)&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://developer.nvidia.com/cuda-12-0-0-download-archive&quot;&gt;CUDA Toolkit 12&lt;/a&gt; or &lt;a href=&quot;https://developer.nvidia.com/cuda-13-0-0-download-archive&quot;&gt;CUDA Toolkit 13&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://developer.nvidia.com/cudnn-downloads&quot;&gt;cuDNN 9.x&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;AMD (ROCm):&lt;/strong&gt; Linux only. 
  &lt;ul&gt; 
   &lt;li&gt;Supported AMD GPU with up-to-date drivers (RDNA2/CDNA or newer), see &lt;a href=&quot;https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html&quot;&gt;compatibility matrix&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://rocm.docs.amd.com/projects/install-on-linux/en/latest/&quot;&gt;ROCm 6+&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://rocm.docs.amd.com/projects/AMDMIGraphX/en/latest/install/install-migraphx.html&quot;&gt;MIGraphX&lt;/a&gt; (may require separate install, e.g. &lt;code&gt;apt install migraphx migraphx-dev&lt;/code&gt; on Ubuntu)&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Intel (OpenVINO):&lt;/strong&gt; Linux and Windows. 
  &lt;ul&gt; 
   &lt;li&gt;Supported Intel GPU with up-to-date drivers (integrated Gen9+, discrete Arc, or NPU Meteor Lake+)&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://www.intel.com/content/www/us/en/developer/articles/tool/opencl-drivers.html&quot;&gt;Intel OpenCL&lt;/a&gt; or/and &lt;a href=&quot;https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2025-2/intel-oneapi-level-zero.html&quot;&gt;Level Zero runtime&lt;/a&gt; (included with drivers on Windows; on Linux may need &lt;code&gt;intel-opencl-icd&lt;/code&gt; or &lt;code&gt;level-zero&lt;/code&gt;)&lt;/li&gt; 
   &lt;li&gt;On Windows, requires &lt;a href=&quot;https://docs.openvino.ai/2026/get-started/install-openvino/install-openvino-windows.html&quot;&gt;OpenVINO Toolkit&lt;/a&gt; installation&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Windows (DirectML):&lt;/strong&gt; bundled, works with any DirectX 12 compatible GPU (NVIDIA, AMD, Intel). No extra install needed. 
  &lt;ul&gt; 
   &lt;li&gt;Windows 10 1903+ (DirectML is a system component)&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;macOS (CoreML):&lt;/strong&gt; bundled, uses Apple Neural Engine automatically. No extra install needed. 
  &lt;ul&gt; 
   &lt;li&gt;macOS 11+ (Big Sur)&lt;/li&gt; 
   &lt;li&gt;Apple Silicon (M1+)&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;GPU memory:&lt;/strong&gt; 4 GB VRAM minimum. If GPU inference fails (out of memory, unsupported op, EP crash), darktable automatically retries on CPU and continues.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;AMD first-run latency:&lt;/strong&gt; on AMD GPUs the first inference per model is significantly slower because ROCm/MIGraphX compiles the model graph on the fly. The compiled graph is cached, so subsequent runs of the same model are fast.&lt;/p&gt; 
&lt;p&gt;To enable GPU acceleration, run one of the install scripts:&lt;/p&gt; 
&lt;p&gt;Linux:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://raw.githubusercontent.com/darktable-org/darktable/HEAD/tools/ai/install-ort-gpu.sh | bash
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Windows (PowerShell):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;irm https://raw.githubusercontent.com/darktable-org/darktable/HEAD/tools/ai/install-ort-gpu.ps1 | iex
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then point darktable at the installed library via the &lt;strong&gt;AI&lt;/strong&gt; tab in preferences (click &lt;strong&gt;detect&lt;/strong&gt;). See &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/tools/ai/README.md&quot;&gt;tools/ai/README.md&lt;/a&gt; for flags, prerequisites, manual install, and troubleshooting. Verify the active provider with &lt;code&gt;darktable -d ai&lt;/code&gt;.&lt;/p&gt; 
&lt;h2&gt;Installing&lt;/h2&gt; 
&lt;p&gt;If the latest release is still not available as a pre-built package for your distribution, you can build the software yourself following the instructions &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#building&quot;&gt;below&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Latest release&lt;/h3&gt; 
&lt;p&gt;5.6.0 (stable)&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/releases/download/release-5.6.0/darktable-5.6.0-win64.exe&quot;&gt;Download package for Windows&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/releases/download/release-5.6.0/darktable-5.6.0-arm64.dmg&quot;&gt;Download disk image for macOS on Apple Silicon&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/releases/download/release-5.6.0/darktable-5.6.0-x86_64.dmg&quot;&gt;Download disk image for macOS on Intel&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/releases/download/release-5.6.0/Darktable-5.6.0-x86_64.AppImage&quot;&gt;Download AppImage for Linux&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://software.opensuse.org/download.html?project=graphics:darktable:stable&amp;amp;package=darktable&quot;&gt;Install native packages or add a third-party repository for Linux distros&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://flathub.org/apps/details/org.darktable.Darktable&quot;&gt;Install Flatpak package for Linux&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.darktable.org/install/&quot;&gt;More information about installing darktable on any system&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;When using a pre-built package, ensure that it has been built with Lua, OpenCL, OpenMP and Colord support. These are optional and will not prevent darktable from running if missing, but their absence will degrade the user experience. You can check for them by running darktable with the &lt;code&gt;--version&lt;/code&gt; command line option.&lt;/em&gt;&lt;/p&gt; 
&lt;h3&gt;Development snapshot&lt;/h3&gt; 
&lt;p&gt;The development snapshot reflects the current state of the master branch. It is intended for testing and is generally not safe. See the notes &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#get-the-source&quot;&gt;below&lt;/a&gt; for warnings and precautions about using the master branch.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://software.opensuse.org/download.html?project=graphics:darktable:master&amp;amp;package=darktable&quot;&gt;Install native packages directly or add third party repository for some Linux distros&lt;/a&gt; (one snapshot per day)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/releases/tag/nightly&quot;&gt;Binary packages are provided for Linux (AppImage), macOS and Windows on a nightly basis&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Updating from older versions&lt;/h2&gt; 
&lt;p&gt;When updating darktable from an older release, you only need to install the newest version. Existing files will be preserved.&lt;/p&gt; 
&lt;p&gt;However, newer releases occasionally need to change the structure of the library database (containing the whole list of images known to darktable, with their editing history). If this happens you will be prompted with a request to either upgrade the database or close the software.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Migration to a newer database structure/newer release means that your edits (both new and old) will no longer be compatible with older versions of darktable.&lt;/strong&gt; Upgrades are definitive. Newer versions are always compatible with older edits, but newer edits are generally not compatible with older versions.&lt;/p&gt; 
&lt;p&gt;darktable automatically backs up the library database when a new version causes it to be upgraded (in &lt;code&gt;~/.config/darktable/library.db-pre-3.0.0&lt;/code&gt; for example), so you can revert to the previous release by restoring this backup if needed (simply rename it to &lt;code&gt;library.db&lt;/code&gt;).&lt;/p&gt; 
&lt;p&gt;You will not be able to open the newer version of the database with a version of darktable that only supports the older version of the database. This is impossible because the older application does not know how the database schema has changed, so its code will not be able to work with it.&lt;/p&gt; 
&lt;p&gt;You will be able to import images with an XMP sidecar file that contains newer versions of processing modules or new modules, but those image editing parts will be discarded and you will lose them.&lt;/p&gt; 
&lt;p&gt;If you plan to move regularly between two versions (new/unstable and old/stable) see &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/#testunstable-version&quot;&gt;below&lt;/a&gt; for details of how to do it safely.&lt;/p&gt; 
&lt;h2&gt;Obtaining extensions&lt;/h2&gt; 
&lt;p&gt;Extensions and plugins use the Lua scripting language and can be downloaded &lt;a href=&quot;https://github.com/darktable-org/lua-scripts&quot;&gt;here&lt;/a&gt;. Lua support is optional in darktable, so make sure you have the &lt;code&gt;lua&lt;/code&gt; interpreter and its development files (package &lt;code&gt;lua-dev&lt;/code&gt; or &lt;code&gt;lua-devel&lt;/code&gt;, depending on distributions) installed on your system while building or ensure the package you are using has been built with this library.&lt;/p&gt; 
&lt;p&gt;Extensions allow exporting for various media and websites, merge/stack/blend HDR, panoramas or focus bracketing, apply AI-based facial recognition, manage tags and GPS data, etc.&lt;/p&gt; 
&lt;h2&gt;Building&lt;/h2&gt; 
&lt;h3&gt;Dependencies&lt;/h3&gt; 
&lt;p&gt;Compatible compilers/toolchains:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Clang: 15 and later&lt;/li&gt; 
 &lt;li&gt;GCC: 12 and later&lt;/li&gt; 
 &lt;li&gt;MinGW-w64: 10 and later&lt;/li&gt; 
 &lt;li&gt;XCode: 15.2 and later&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Required dependencies (minimum version):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;CMake 3.18&lt;/li&gt; 
 &lt;li&gt;GTK 3.24.15&lt;/li&gt; 
 &lt;li&gt;GLib 2.56&lt;/li&gt; 
 &lt;li&gt;SQLite 3.26&lt;/li&gt; 
 &lt;li&gt;libcurl 7.56&lt;/li&gt; 
 &lt;li&gt;libpng 1.5.0 &lt;em&gt;(for PNG import &amp;amp; export, also for reading LUT files in PNG format)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;Exiv2 0.27.2 &lt;em&gt;(but at least 0.27.4 built with ISO BMFF support needed for Canon CR3 raw import)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;potrace 1.16&lt;/li&gt; 
 &lt;li&gt;pugixml 1.8&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Required dependencies (no version requirement):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Lensfun &lt;em&gt;(for automatic lens correction)&lt;/em&gt; (Note: alpha 0.3.95 and git master branch are not supported)&lt;/li&gt; 
 &lt;li&gt;libjpeg &lt;em&gt;(both the original IJG library and API-compatible ones, such as libjpeg-turbo, will work)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;LibTIFF &lt;em&gt;(for TIFF import &amp;amp; export)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;Little CMS 2&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Optional dependencies (minimum version):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;OpenMP 4.5 &lt;em&gt;(for CPU multi-threading and SIMD vectorization)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;LLVM 7 &lt;em&gt;(for OpenCL checks at compilation time)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;OpenCL 1.2 &lt;em&gt;(for GPU-accelerated computing)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;Lua 5.4 &lt;em&gt;(for plugins and extension scripting)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;G&#39;MIC 2.7.0 &lt;em&gt;(for .gmz compressed LUT files support)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;libgphoto2 2.5 &lt;em&gt;(for camera tethering)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;Imath 3.1.0 &lt;em&gt;(for 16-bit &quot;half&quot; float TIFF export and faster import)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;libavif 0.9.3 &lt;em&gt;(for AVIF import &amp;amp; export)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;ONNX Runtime 1.18 &lt;em&gt;(for AI inference)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;libarchive 3.8.5 &lt;em&gt;(for AI models download)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;libheif 1.13.0 &lt;em&gt;(for HEIF import &amp;amp; export; also for AVIF import if no libavif)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;libjxl 0.7.0 &lt;em&gt;(for JPEG XL import &amp;amp; export)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;WebP 0.3.0 &lt;em&gt;(for WebP import &amp;amp; export)&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Optional dependencies (no version requirement):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;colord, Xatom &lt;em&gt;(for fetching the system display color profile)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;PortMidi &lt;em&gt;(for MIDI input support)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;SDL2 &lt;em&gt;(for gamepad input support)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;CUPS &lt;em&gt;(for print mode support)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;OpenEXR &lt;em&gt;(for EXR import &amp;amp; export)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;OpenJPEG &lt;em&gt;(for JPEG 2000 import &amp;amp; export)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;GraphicsMagick or ImageMagick &lt;em&gt;(for misc image format import)&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;To install all the dependencies on Linux systems, you may use the source repository of your distribution. This will install the same packages that were used to build the official darktable package on your system. Most likely, you will want to build a newer version than the one packaged in the distribution. So please note that although this does not happen very often, it is possible that a new version of darktable will have a new (required or optional) dependency. So the commands below only simplify the creation of your build environment, but will not replace your attention to the build process and possibly finding and installing certain additional dependency packages.&lt;/p&gt; 
&lt;h4&gt;Fedora and RHEL/CentOS&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo dnf builddep darktable
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;OpenSuse&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo zypper si -d darktable
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Ubuntu&lt;/h4&gt; 
&lt;p&gt;Recent Ubuntu releases do not include the deb-src sources out of the box, even in commented form. To add them, you need to run &quot;Software &amp;amp; Updates&quot; and on the first tab that opens, &quot;Ubuntu Software&quot;, check the &quot;Source code&quot; checkbox. Only after that you can use the following command:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get build-dep darktable
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Debian&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get build-dep darktable
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Get the source&lt;/h3&gt; 
&lt;h4&gt;Master branch (unstable)&lt;/h4&gt; 
&lt;p&gt;The master branch contains the latest version of the source code and is intended:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;as a working base for developers,&lt;/li&gt; 
 &lt;li&gt;for beta-testers to chase bugs,&lt;/li&gt; 
 &lt;li&gt;for users willing to sacrifice stability for new features without waiting for the next release.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The master branch comes with no guarantee of stability and might corrupt your database and XMP files, result in loss of data and edit history or temporarily break compatibility with previous versions and commits.&lt;/p&gt; 
&lt;p&gt;How dangerous is it? Most of the time, it is fairly stable. As with any rolling-release kind of deployment, bugs appear more often but are fixed faster too. Sometimes, though, these bugs can result in losses or inconsistencies in the editing history of your pictures. This is fine if you don&#39;t need to open your edits again in the future, but maybe not if you manage an estate.&lt;/p&gt; 
&lt;p&gt;After backing up your &lt;code&gt;~/.config/darktable&lt;/code&gt; directory and the sidecar .XMP files of any pictures you intend to open with the master branch, you may obtain the source as follows:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone --recurse-submodules https://github.com/darktable-org/darktable.git
cd darktable
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See below (in &quot;Using&quot;) how to start a test install of the unstable version without damaging your regular stable install and files.&lt;/p&gt; 
&lt;h4&gt;Latest stable release&lt;/h4&gt; 
&lt;p&gt;5.6.0&lt;/p&gt; 
&lt;p&gt;The darktable project releases two major versions every year, on Summer and Winter Solstices, tagged with even numbers (e.g. 4.2, 4.4, 4.6, 4.8). Minor revisions are tagged with a third digit (e.g. 4.4.1, 4.4.2) and mostly provide bug fixes and camera support. You may want to compile these stable releases yourself to get better performance for your particular computer:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone --recurse-submodules https://github.com/darktable-org/darktable.git
cd darktable
git fetch --tags
git checkout tags/release-5.6.0
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Get submodules&lt;/h3&gt; 
&lt;p&gt;Note that &lt;a href=&quot;https://github.com/houz/libxcf.git&quot;&gt;libxcf&lt;/a&gt;, &lt;a href=&quot;https://github.com/KhronosGroup/OpenCL-Headers.git&quot;&gt;OpenCL&lt;/a&gt;, &lt;a href=&quot;https://github.com/darktable-org/rawspeed&quot;&gt;RawSpeed&lt;/a&gt;, &lt;a href=&quot;https://github.com/gpakosz/whereami&quot;&gt;whereami&lt;/a&gt; and &lt;a href=&quot;https://github.com/LibRaw/LibRaw&quot;&gt;LibRaw&lt;/a&gt; are tracked via git submodules, so after checking-out darktable, you need to update/checkout the submodules too:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git submodule update --init
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Compile&lt;/h3&gt; 
&lt;h4&gt;Easy way&lt;/h4&gt; 
&lt;p&gt;WARNING: If you have previously built darktable, don&#39;t forget to first completely remove (&lt;code&gt;rm -R&lt;/code&gt;) the &lt;code&gt;build&lt;/code&gt; and &lt;code&gt;/opt/darktable&lt;/code&gt; directories to avoid conflicting files from different versions. Many weird behaviors and transient bugs have been reported that can be traced to the build cache not properly invalidating the changed dependencies, so the safest way is to completely remove previously built binaries and start again from scratch.&lt;/p&gt; 
&lt;p&gt;darktable provides a shell script that automatically takes care of building on Linux and macOS for classic cases in a single command.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./build.sh --prefix /opt/darktable --build-type Release --install --sudo
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you want to install a test version alongside your regular/stable version, change the install prefix:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./build.sh --prefix /opt/darktable-test --build-type Release --install --sudo
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This builds the software for your architecture only, with:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;-O3&lt;/code&gt; optimization level,&lt;/li&gt; 
 &lt;li&gt;SSE/AVX support if detected,&lt;/li&gt; 
 &lt;li&gt;OpenMP support (multi-threading and vectorization) if detected,&lt;/li&gt; 
 &lt;li&gt;OpenCL support (GPU offloading) if detected,&lt;/li&gt; 
 &lt;li&gt;Lua scripting support if detected.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If you want to have dartkable displayed along your other applications, you only need to add a symbolic link:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ln -s /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/share/applications/org.darktable.darktable.desktop
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Now, your custom-built darktable is ready to be used just like any pre-packaged software.&lt;/p&gt; 
&lt;h4&gt;Manual way&lt;/h4&gt; 
&lt;p&gt;Alternatively, you can use a manual build to pass custom arguments.&lt;/p&gt; 
&lt;h5&gt;Linux&lt;/h5&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/darktable/ ..
cmake --build .
sudo cmake --install .
&lt;/code&gt;&lt;/pre&gt; 
&lt;h5&gt;macOS&lt;/h5&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/packaging/macosx/BUILD_hb.txt&quot;&gt;Homebrew&lt;/a&gt; or &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/packaging/macosx/BUILD.txt&quot;&gt;MacPorts&lt;/a&gt; instructions.&lt;/p&gt; 
&lt;h5&gt;Windows&lt;/h5&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/darktable-org/darktable/master/packaging/windows/README.md&quot;&gt;these instructions&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Using&lt;/h3&gt; 
&lt;h4&gt;Test/unstable version&lt;/h4&gt; 
&lt;p&gt;To use a test version of darktable without damaging your regular/stable version&#39;s files and database, start darktable in a terminal with:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/opt/darktable-test/bin/darktable --configdir &quot;~/.config/darktable-test&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;and ensure that you set the option &quot;create XMP files&quot; to &quot;never&quot; in preferences -&amp;gt; storage -&amp;gt; XMP sidecar files. This way, your regular/stable version will save its configuration files in &lt;code&gt;~/.config/darktable&lt;/code&gt;, as usual, the test/unstable one will save in &lt;code&gt;~/.config/darktable-test&lt;/code&gt;, and the two versions will not produce database conflicts.&lt;/p&gt; 
&lt;h4&gt;Regular/stable version&lt;/h4&gt; 
&lt;p&gt;Simply launch it from your desktop application menu or, from a terminal, run &lt;code&gt;darktable&lt;/code&gt; or &lt;code&gt;/opt/darktable/bin/darktable&lt;/code&gt;. If the installation did not create a launcher in your applications menu, run:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ln -s /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/share/applications/org.darktable.darktable.desktop
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You may find darktable configuration files in &lt;code&gt;~/.config/darktable&lt;/code&gt;. If you experience crashes at startup, try launching darktable from a terminal with OpenCL disabled using &lt;code&gt;darktable --disable-opencl&lt;/code&gt;.&lt;/p&gt; 
&lt;h3&gt;Further reading&lt;/h3&gt; 
&lt;p&gt;There is a comprehensive list of build instructions for &lt;a href=&quot;https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Ubuntu&quot;&gt;Ubuntu/Debian related distributions&lt;/a&gt; or for &lt;a href=&quot;https://github.com/darktable-org/darktable/wiki/Build-Instructions-for-Fedora&quot;&gt;Fedora and related distributions&lt;/a&gt;. These build instructions can be easily adapted to many other Linux distributions.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;There are many ways you can contribute to the darktable project:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Write a blog about darktable&lt;/li&gt; 
 &lt;li&gt;Create a tutorial for darktable&lt;/li&gt; 
 &lt;li&gt;Help expand the &lt;a href=&quot;https://github.com/darktable-org/darktable/wiki&quot;&gt;user wiki&lt;/a&gt; or &lt;a href=&quot;https://github.com/darktable-org/dtdocs&quot;&gt;user manual&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Answer questions on the &lt;a href=&quot;https://matrix.to/#/%23darktable-user:matrix.org&quot;&gt;user Matrix room&lt;/a&gt; or the &lt;a href=&quot;https://discuss.pixls.us/c/software/darktable/19&quot;&gt;pixls.us forum&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Share your ideas on the &lt;a href=&quot;https://matrix.to/#/%23darktable-dev:matrix.org&quot;&gt;developer Matrix room&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Test &lt;a href=&quot;https://www.darktable.org/install/&quot;&gt;releases&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Review &lt;a href=&quot;https://github.com/darktable-org/darktable/pulls&quot;&gt;pull requests&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Start &lt;a href=&quot;https://www.darktable.org/development/&quot;&gt;hacking on darktable&lt;/a&gt; and see &lt;a href=&quot;https://github.com/darktable-org/darktable/wiki/Developer&#39;s-guide&quot;&gt;developer&#39;s guide&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;FAQ&lt;/h2&gt; 
&lt;h3&gt;Why is my camera not detected when plugged-in ?&lt;/h3&gt; 
&lt;p&gt;Check that you have the latest &lt;a href=&quot;http://www.gphoto.org/&quot; title=&quot;gphoto2 homepage&quot;&gt;gphoto2 library&lt;/a&gt; installed in order to support the newest cameras.&lt;/p&gt; 
&lt;h3&gt;Why is my lens not detected/corrected in darkroom ?&lt;/h3&gt; 
&lt;p&gt;Lens correction profiles are provided by Lensfun, which has 2 parts: a program and a database. Most Linux distributions provide a recent enough version of the program, but provide an outdated version of the database. If &lt;a href=&quot;https://lensfun.github.io/&quot;&gt;Lensfun&lt;/a&gt; is correctly installed, then update its database in a terminal by running:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;lensfun-update-data
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;or alternatively&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/usr/bin/g-lensfun-update-data
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Why do the thumbnails in the lighttable view look different to the preview in the darkroom view ?&lt;/h3&gt; 
&lt;p&gt;For RAW files that have never been edited in darktable (when you have just imported them), the lighttable view, by default, shows the JPEG preview placed into the RAW file by your camera. Loading this JPEG file is faster and makes the lighttable view more responsive when importing large collections of images.&lt;/p&gt; 
&lt;p&gt;However, this JPEG thumbnail is processed by the firmware of the camera, with proprietary algorithms, and colors, sharpness and contrast that might not look the same as darktable processing (which is what you see when opening the image in the darkroom view). Camera manufacturers don&#39;t publish details of the pixel processing they perform in their firmware so their look is not exactly or easily reproducible by other software.&lt;/p&gt; 
&lt;p&gt;However, once RAW images have been edited in darktable, the lighttable thumbnail should exactly match the darkroom preview, as they are processed in the same way.&lt;/p&gt; 
&lt;p&gt;If you never want to see the embedded JPEG thumbnail in the lighttable view, for RAW files, you should set the option &quot;use raw file instead of embedded JPEG from size&quot; to &quot;never&quot; in preferences -&amp;gt; lighttable.&lt;/p&gt; 
&lt;h2&gt;Wiki&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/wiki&quot; title=&quot;github wiki&quot;&gt;GitHub wiki&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/darktable-org/darktable/wiki/Developer&#39;s-guide&quot; title=&quot;darktable developer wiki&quot;&gt;Developer wiki&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Community&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://discuss.pixls.us/c/software/darktable/19&quot;&gt;Darktable forum on pixls.us&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>pbatard/rufus</title>
      <link>https://github.com/pbatard/rufus</link>
      <description>&lt;p&gt;The Reliable USB Formatting Utility&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Rufus: The Reliable USB Formatting Utility&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/pbatard/rufus/actions/workflows/vs2026.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/pbatard/rufus/vs2026.yml?branch=master&amp;amp;style=flat-square&amp;amp;label=VS2026%20Build&quot; alt=&quot;VS2022 Build Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/pbatard/rufus/actions/workflows/mingw.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/pbatard/rufus/mingw.yml?branch=master&amp;amp;style=flat-square&amp;amp;label=MinGW%20Build&quot; alt=&quot;MinGW Build Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://scan.coverity.com/projects/pbatard-rufus&quot;&gt;&lt;img src=&quot;https://img.shields.io/coverity/scan/2172.svg?style=flat-square&amp;amp;label=Coverity%20Analysis&quot; alt=&quot;Coverity Scan Status&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;https://github.com/pbatard/rufus/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/release-pre/pbatard/rufus.svg?style=flat-square&amp;amp;label=Latest%20Release&quot; alt=&quot;Latest Release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.gnu.org/licenses/gpl-3.0.en.html&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-GPLv3-blue.svg?style=flat-square&amp;amp;label=License&quot; alt=&quot;Licence&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/pbatard/rufus/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/pbatard/rufus/total.svg?label=Downloads&amp;amp;style=flat-square&quot; alt=&quot;Download Stats&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/pbatard/rufus/graphs/contributors&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/contributors/pbatard/rufus.svg?style=flat-square&amp;amp;label=Contributors&quot; alt=&quot;Contributors&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/pbatard/rufus/master/res/icons/rufus-128.png&quot; alt=&quot;Rufus logo&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;Rufus is a utility that helps format and create bootable USB flash drives.&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3&lt;/li&gt; 
 &lt;li&gt;Create DOS bootable USB drives using &lt;a href=&quot;https://www.freedos.org&quot;&gt;FreeDOS&lt;/a&gt; or MS-DOS&lt;/li&gt; 
 &lt;li&gt;Create BIOS or UEFI bootable drives, including &lt;a href=&quot;https://github.com/pbatard/uefi-ntfs&quot;&gt;UEFI bootable NTFS&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Create bootable drives from bootable ISOs (Windows, Linux, etc.)&lt;/li&gt; 
 &lt;li&gt;Create bootable drives from bootable disk images, including compressed ones&lt;/li&gt; 
 &lt;li&gt;Create Windows 11 installation drives for PCs that don&#39;t have TPM or Secure Boot&lt;/li&gt; 
 &lt;li&gt;Create &lt;a href=&quot;https://en.wikipedia.org/wiki/Windows_To_Go&quot;&gt;Windows To Go&lt;/a&gt; drives&lt;/li&gt; 
 &lt;li&gt;Create VHD/DD, VHDX and FFU images of an existing drive&lt;/li&gt; 
 &lt;li&gt;Create persistent Linux partitions&lt;/li&gt; 
 &lt;li&gt;Compute MD5, SHA-1, SHA-256 and SHA-512 checksums of the selected image&lt;/li&gt; 
 &lt;li&gt;Perform runtime validation of UEFI bootable media&lt;/li&gt; 
 &lt;li&gt;Improve Windows installation experience by automatically setting up OOBE parameters (local account, privacy options, etc.)&lt;/li&gt; 
 &lt;li&gt;Perform bad blocks checks, including detection of &quot;fake&quot; flash drives&lt;/li&gt; 
 &lt;li&gt;Download official Microsoft Windows 8, Windows 10 or Windows 11 retail ISOs&lt;/li&gt; 
 &lt;li&gt;Download &lt;a href=&quot;https://github.com/pbatard/UEFI-Shell&quot;&gt;UEFI Shell&lt;/a&gt; ISOs&lt;/li&gt; 
 &lt;li&gt;Modern and familiar UI, with &lt;a href=&quot;https://github.com/pbatard/rufus/wiki/FAQ#What_languages_are_natively_supported_by_Rufus&quot;&gt;38 languages natively supported&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Small footprint. No installation required.&lt;/li&gt; 
 &lt;li&gt;Portable. Secure Boot compatible.&lt;/li&gt; 
 &lt;li&gt;100% &lt;a href=&quot;https://www.gnu.org/philosophy/free-sw&quot;&gt;Free Software&lt;/a&gt; (&lt;a href=&quot;https://www.gnu.org/licenses/gpl-3.0&quot;&gt;GPL v3&lt;/a&gt;)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Compilation&lt;/h2&gt; 
&lt;p&gt;Use either Visual Studio 2026 or MinGW and then invoke the &lt;code&gt;.sln&lt;/code&gt; or &lt;code&gt;configure&lt;/code&gt;/&lt;code&gt;make&lt;/code&gt; respectively.&lt;/p&gt; 
&lt;h4&gt;Visual Studio&lt;/h4&gt; 
&lt;p&gt;Rufus is an OSI compliant Open Source project. You are entitled to download and use the &lt;em&gt;freely available&lt;/em&gt; &lt;a href=&quot;https://www.visualstudio.com/vs/community/&quot;&gt;Visual Studio Community Edition&lt;/a&gt; to build, run or develop for Rufus. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.&lt;/p&gt; 
&lt;h2&gt;Additional information&lt;/h2&gt; 
&lt;p&gt;Rufus provides extensive information about what it is doing, either through its easily accessible log, or through the &lt;a href=&quot;https://docs.microsoft.com/en-us/sysinternals/downloads/debugview&quot;&gt;Windows debug facility&lt;/a&gt;.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://rufus.ie&quot;&gt;&lt;strong&gt;Official Website&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/pbatard/rufus/wiki/FAQ&quot;&gt;FAQ&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/pbatard/rufus/wiki/Security&quot;&gt;Security and safety measures&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Enhancements/Bugs&lt;/h2&gt; 
&lt;p&gt;Please use the &lt;a href=&quot;https://github.com/pbatard/rufus/issues&quot;&gt;GitHub issue tracker&lt;/a&gt; for reporting problems or suggesting new features.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>FreeRTOS/FreeRTOS-Kernel</title>
      <link>https://github.com/FreeRTOS/FreeRTOS-Kernel</link>
      <description>&lt;p&gt;FreeRTOS kernel files only, submoduled into https://github.com/FreeRTOS/FreeRTOS and various other repos.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/FreeRTOS/FreeRTOS-Kernel/actions/workflows/unit-tests.yml?query=branch%3Amain+event%3Apush+workflow%3A%22CMock+Unit+Tests%22++&quot;&gt;&lt;img src=&quot;https://github.com/FreeRTOS/FreeRTOS-Kernel/actions/workflows/unit-tests.yml/badge.svg?branch=main&amp;amp;event=push&quot; alt=&quot;CMock Unit Tests&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://codecov.io/gh/FreeRTOS/FreeRTOS-Kernel&quot;&gt;&lt;img src=&quot;https://app.codecov.io/gh/FreeRTOS/FreeRTOS-Kernel/badge.svg?branch=main&quot; alt=&quot;codecov&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Getting started&lt;/h2&gt; 
&lt;p&gt;This repository contains FreeRTOS kernel source/header files and kernel ports only. This repository is referenced as a submodule in &lt;a href=&quot;https://github.com/FreeRTOS/FreeRTOS&quot;&gt;FreeRTOS/FreeRTOS&lt;/a&gt; repository, which contains pre-configured demo application projects under &lt;code&gt;FreeRTOS/Demo&lt;/code&gt; directory.&lt;/p&gt; 
&lt;p&gt;The easiest way to use FreeRTOS is to start with one of the pre-configured demo application projects. That way you will have the correct FreeRTOS source files included, and the correct include paths configured. Once a demo application is building and executing you can remove the demo application files, and start to add in your own application source files. See the &lt;a href=&quot;https://www.freertos.org/Documentation/01-FreeRTOS-quick-start/01-Beginners-guide/02-Quick-start-guide&quot;&gt;FreeRTOS Kernel Quick Start Guide&lt;/a&gt; for detailed instructions and other useful links.&lt;/p&gt; 
&lt;p&gt;Additionally, for FreeRTOS kernel feature information refer to the &lt;a href=&quot;https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/00-Developer-docs&quot;&gt;Developer Documentation&lt;/a&gt;, and &lt;a href=&quot;https://www.freertos.org/Documentation/02-Kernel/04-API-references/01-Task-creation/00-TaskHandle&quot;&gt;API Reference&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Also for contributing and creating a Pull Request please refer to &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/.github/CONTRIBUTING.md#contributing-via-pull-request&quot;&gt;the instructions here&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;FreeRTOS-Kernel V11.1.0 &lt;a href=&quot;https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V11.1.0&quot;&gt;source code&lt;/a&gt; is part of the &lt;a href=&quot;https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202406-LTS&quot;&gt;FreeRTOS 202406.00 LTS&lt;/a&gt; release.&lt;/strong&gt;&lt;/p&gt; 
&lt;h3&gt;Getting help&lt;/h3&gt; 
&lt;p&gt;If you have any questions or need assistance troubleshooting your FreeRTOS project, we have an active community that can help on the &lt;a href=&quot;https://forums.freertos.org&quot;&gt;FreeRTOS Community Support Forum&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;To consume FreeRTOS-Kernel&lt;/h2&gt; 
&lt;h3&gt;Consume with CMake&lt;/h3&gt; 
&lt;p&gt;If using CMake, it is recommended to use this repository using FetchContent. Add the following into your project&#39;s main or a subdirectory&#39;s &lt;code&gt;CMakeLists.txt&lt;/code&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Define the source and version/tag you want to use:&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-cmake&quot;&gt;FetchContent_Declare( freertos_kernel
  GIT_REPOSITORY https://github.com/FreeRTOS/FreeRTOS-Kernel.git
  GIT_TAG        main #Note: Best practice to use specific git-hash or tagged version
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;In case you prefer to add it as a git submodule, do:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git submodule add https://github.com/FreeRTOS/FreeRTOS-Kernel.git &amp;lt;path of the submodule&amp;gt;
git submodule update --init
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;Add a freertos_config library (typically an INTERFACE library) The following assumes the directory structure: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;include/FreeRTOSConfig.h&lt;/code&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-cmake&quot;&gt;add_library(freertos_config INTERFACE)

target_include_directories(freertos_config SYSTEM
INTERFACE
    include
)

target_compile_definitions(freertos_config
  INTERFACE
    projCOVERAGE_TEST=0
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;In case you installed FreeRTOS-Kernel as a submodule, you will have to add it as a subdirectory:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-cmake&quot;&gt;add_subdirectory(${FREERTOS_PATH})
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;Configure the FreeRTOS-Kernel and make it available 
  &lt;ul&gt; 
   &lt;li&gt;this particular example supports a native and cross-compiled build option.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-cmake&quot;&gt;set( FREERTOS_HEAP &quot;4&quot; CACHE STRING &quot;&quot; FORCE)
# Select the native compile PORT
set( FREERTOS_PORT &quot;GCC_POSIX&quot; CACHE STRING &quot;&quot; FORCE)
# Select the cross-compile PORT
if (CMAKE_CROSSCOMPILING)
  set(FREERTOS_PORT &quot;GCC_ARM_CA9&quot; CACHE STRING &quot;&quot; FORCE)
endif()

FetchContent_MakeAvailable(freertos_kernel)
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;In case of cross compilation, you should also add the following to &lt;code&gt;freertos_config&lt;/code&gt;:&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-cmake&quot;&gt;target_compile_definitions(freertos_config INTERFACE ${definitions})
target_compile_options(freertos_config INTERFACE ${options})
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Consuming stand-alone - Cloning this repository&lt;/h3&gt; 
&lt;p&gt;To clone using HTTPS:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git clone https://github.com/FreeRTOS/FreeRTOS-Kernel.git
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Using SSH:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git clone git@github.com:FreeRTOS/FreeRTOS-Kernel.git
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Repository structure&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;The root of this repository contains the three files that are common to every port - list.c, queue.c and tasks.c. The kernel is contained within these three files. croutine.c implements the optional co-routine functionality - which is normally only used on very memory limited systems.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;The &lt;code&gt;./portable&lt;/code&gt; directory contains the files that are specific to a particular microcontroller and/or compiler. See the readme file in the &lt;code&gt;./portable&lt;/code&gt; directory for more information.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;The &lt;code&gt;./include&lt;/code&gt; directory contains the real time kernel header files.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;The &lt;code&gt;./examples/template_configuration&lt;/code&gt; directory contains a sample &lt;code&gt;FreeRTOSConfig.h&lt;/code&gt; to help jumpstart a new project. See the &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/examples/template_configuration/FreeRTOSConfig.h&quot;&gt;FreeRTOSConfig.h&lt;/a&gt; file for instructions.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Code Formatting&lt;/h3&gt; 
&lt;p&gt;FreeRTOS files are formatted using the &quot;&lt;a href=&quot;https://github.com/uncrustify/uncrustify&quot;&gt;uncrustify&lt;/a&gt;&quot; tool. The configuration file used by uncrustify can be found in the &lt;a href=&quot;https://github.com/FreeRTOS/CI-CD-Github-Actions&quot;&gt;FreeRTOS/CI-CD-GitHub-Actions&#39;s&lt;/a&gt; &lt;a href=&quot;https://github.com/FreeRTOS/CI-CD-Github-Actions/tree/main/formatting&quot;&gt;uncrustify.cfg&lt;/a&gt; file.&lt;/p&gt; 
&lt;h3&gt;Line Endings&lt;/h3&gt; 
&lt;p&gt;File checked into the FreeRTOS-Kernel repository use unix-style LF line endings for the best compatibility with git.&lt;/p&gt; 
&lt;p&gt;For optimal compatibility with Microsoft Windows tools, it is best to enable the git autocrlf feature. You can enable this setting for the current repository using the following command:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git config core.autocrlf true
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Git History Optimizations&lt;/h3&gt; 
&lt;p&gt;Some commits in this repository perform large refactors which touch many lines and lead to unwanted behavior when using the &lt;code&gt;git blame&lt;/code&gt; command. You can configure git to ignore the list of large refactor commits in this repository with the following command:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git config blame.ignoreRevsFile .git-blame-ignore-revs
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Spelling and Formatting&lt;/h3&gt; 
&lt;p&gt;We recommend using &lt;a href=&quot;https://code.visualstudio.com&quot;&gt;Visual Studio Code&lt;/a&gt;, commonly referred to as VSCode, when working on the FreeRTOS-Kernel. The FreeRTOS-Kernel also uses &lt;a href=&quot;https://cspell.org/&quot;&gt;cSpell&lt;/a&gt; as part of its spelling check. The config file for which can be found at &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/cspell.config.yaml&quot;&gt;cspell.config.yaml&lt;/a&gt; There is additionally a &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker&quot;&gt;cSpell plugin for VSCode&lt;/a&gt; that can be used as well. &lt;em&gt;&lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/.github/.cSpellWords.txt&quot;&gt;.cSpellWords.txt&lt;/a&gt;&lt;/em&gt; contains words that are not traditionally found in an English dictionary. It is used by the spellchecker to verify the various jargon, variable names, and other odd words used in the FreeRTOS code base are correct. If your pull request fails to pass the spelling and you believe this is a mistake, then add the word to &lt;em&gt;&lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/.github/.cSpellWords.txt&quot;&gt;.cSpellWords.txt&lt;/a&gt;&lt;/em&gt;. When adding a word please then sort the list, which can be done by running the bash command: &lt;code&gt;sort -u .cSpellWords.txt -o .cSpellWords.txt&lt;/code&gt; Note that only the FreeRTOS-Kernel Source Files, &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/include&quot;&gt;include&lt;/a&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/portable/MemMang&quot;&gt;portable/MemMang&lt;/a&gt;, and &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/portable/Common&quot;&gt;portable/Common&lt;/a&gt; files are checked for proper spelling, and formatting at this time.&lt;/p&gt; 
&lt;h2&gt;Third Party Tools&lt;/h2&gt; 
&lt;p&gt;Visit &lt;a href=&quot;https://raw.githubusercontent.com/FreeRTOS/FreeRTOS-Kernel/main/.github/third_party_tools.md&quot;&gt;this link&lt;/a&gt; for detailed information about third-party tools with FreeRTOS support.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
