<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>GitHub Kotlin Monthly Trending</title>
    <description>Monthly Trending of Kotlin in GitHub</description>
    <pubDate>Wed, 13 May 2026 01:56:29 GMT</pubDate>
    <link>http://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>2dust/v2rayNG</title>
      <link>https://github.com/2dust/v2rayNG</link>
      <description>&lt;p&gt;A V2Ray client for Android, support Xray core and v2fly core&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;v2rayNG&lt;/h1&gt; 
&lt;p&gt;A V2Ray client for Android, support &lt;a href=&quot;https://github.com/XTLS/Xray-core&quot;&gt;Xray core&lt;/a&gt; and &lt;a href=&quot;https://github.com/v2fly/v2ray-core&quot;&gt;v2fly core&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://developer.android.com/about/versions/lollipop&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/API-24%2B-yellow.svg?style=flat&quot; alt=&quot;API&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://kotlinlang.org&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Kotlin-2.3.0-blue.svg?sanitize=true&quot; alt=&quot;Kotlin Version&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/2dust/v2rayNG/commits/master&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/commit-activity/m/2dust/v2rayNG&quot; alt=&quot;GitHub commit activity&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.codefactor.io/repository/github/2dust/v2rayng&quot;&gt;&lt;img src=&quot;https://www.codefactor.io/repository/github/2dust/v2rayng/badge&quot; alt=&quot;CodeFactor&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/2dust/v2rayNG/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/2dust/v2rayNG/latest/total?logo=github&quot; alt=&quot;GitHub Releases&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://t.me/v2rayn&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Chat%20on-Telegram-brightgreen.svg?sanitize=true&quot; alt=&quot;Chat on Telegram&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Telegram Channel&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://t.me/github_2dust&quot;&gt;github_2dust&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Usage&lt;/h3&gt; 
&lt;h4&gt;Geoip and Geosite&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;geoip.dat and geosite.dat files are in &lt;code&gt;Android/data/com.v2ray.ang/files/assets&lt;/code&gt; (path may differ on some Android device)&lt;/li&gt; 
 &lt;li&gt;download feature will get enhanced version in this &lt;a href=&quot;https://github.com/Loyalsoldier/v2ray-rules-dat&quot;&gt;repo&lt;/a&gt; (Note it need a working proxy)&lt;/li&gt; 
 &lt;li&gt;latest official &lt;a href=&quot;https://github.com/Loyalsoldier/v2ray-rules-dat&quot;&gt;domain list&lt;/a&gt; and &lt;a href=&quot;https://github.com/Loyalsoldier/geoip&quot;&gt;ip list&lt;/a&gt; can be imported manually&lt;/li&gt; 
 &lt;li&gt;possible to use third party dat file in the same folder, like &lt;a href=&quot;https://guide.v2fly.org/routing/sitedata.html#%E5%A4%96%E7%BD%AE%E7%9A%84%E5%9F%9F%E5%90%8D%E6%96%87%E4%BB%B6&quot;&gt;h2y&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;More in our &lt;a href=&quot;https://github.com/2dust/v2rayNG/wiki&quot;&gt;wiki&lt;/a&gt;&lt;/h3&gt; 
&lt;h3&gt;Development guide&lt;/h3&gt; 
&lt;p&gt;Android project under V2rayNG folder can be compiled directly in Android Studio, or using Gradle wrapper. But the v2ray core inside the aar is (probably) outdated.&lt;br /&gt; The aar can be compiled from the Golang project &lt;a href=&quot;https://github.com/2dust/AndroidLibV2rayLite&quot;&gt;AndroidLibV2rayLite&lt;/a&gt; or &lt;a href=&quot;https://github.com/2dust/AndroidLibXrayLite&quot;&gt;AndroidLibXrayLite&lt;/a&gt;. For a quick start, read guide for &lt;a href=&quot;https://github.com/golang/go/wiki/Mobile&quot;&gt;Go Mobile&lt;/a&gt; and &lt;a href=&quot;https://tutorialedge.net/golang/makefiles-for-go-developers/&quot;&gt;Makefiles for Go Developers&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;v2rayNG can run on Android Emulators. For WSA, VPN permission need to be granted via &lt;code&gt;appops set [package name] ACTIVATE_VPN allow&lt;/code&gt;&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/cb7feadf7e8e9ee7793226133ecf9ae52eec4299413100bc6e9d61328d0975b7/2dust/v2rayNG" medium="image" />
      
    </item>
    
    <item>
      <title>bannedbook/fanqiang</title>
      <link>https://github.com/bannedbook/fanqiang</link>
      <description>&lt;p&gt;翻墙-科学上网&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;翻墙-科学上网、翻墙工具、翻墙教程项目库&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/fqnews2&quot;&gt;翻墙新闻-FQNews-安卓APP&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/%E5%AE%89%E5%8D%93%E7%BF%BB%E5%A2%99%E8%BD%AF%E4%BB%B6&quot;&gt;安卓翻墙软件&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android&quot;&gt;安卓翻墙APP教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/Chrome%E4%B8%80%E9%94%AE%E7%BF%BB%E5%A2%99%E5%8C%85&quot;&gt;Chrome一键翻墙包&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ChromeGoMac#chromegomacchrome%E4%B8%80%E9%94%AE%E7%BF%BB%E5%A2%99%E5%8C%85-mac%E7%89%88&quot;&gt;Chrome一键翻墙包 Mac版&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/EdgeGo&quot;&gt;EdgeGo-Edge一键翻墙包&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/%E7%81%AB%E7%8B%90firefox%E4%B8%80%E9%94%AE%E7%BF%BB%E5%A2%99%E5%8C%85&quot;&gt;火狐firefox一键翻墙包&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/FirefoxFqLinux&quot;&gt;Firefox一键翻墙包Linux版&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/v2ss/%E8%87%AA%E5%BB%BAV2ray%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B.md&quot;&gt;自建V2ray服务器翻墙简明教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/v2ss/%E8%87%AA%E5%BB%BAShadowsocks%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B.md&quot;&gt;自建Shadowsocks服务器翻墙简明教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/%E5%85%8D%E8%B4%B9ss%E8%B4%A6%E5%8F%B7&quot;&gt;免费ss账号&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/v2ray%E5%85%8D%E8%B4%B9%E8%B4%A6%E5%8F%B7&quot;&gt;v2ray免费账号&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/%E8%8B%B9%E6%9E%9C%E7%94%B5%E8%84%91MAC%E7%BF%BB%E5%A2%99&quot;&gt;苹果电脑MAC翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/iphone%E7%BF%BB%E5%A2%99&quot;&gt;iphone翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/TorBrowser%E4%B8%80%E9%94%AE%E7%BF%BB%E5%A2%99%E5%8C%85&quot;&gt;TorBrowser一键翻墙包&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/signup-chatgpt.md#%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%E6%B3%A8%E5%86%8Cchatgpt%E6%95%99%E7%A8%8B&quot;&gt;中国大陆注册ChatGPT教程&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/windows&quot;&gt;Windows V2ray/SS/SSR 翻墙教程&lt;/a&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/windows/ClashDotNetFramework.md&quot;&gt;Clash for Windows 翻墙教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/windows/V2RayN.md&quot;&gt;V2rayN 教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/windows/SSTap.md&quot;&gt;SSTap教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/windows/ShadowsocksR.md&quot;&gt;Windows翻墙之SSR教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/windows/tor-v2ray.md&quot;&gt;TorBrowser+V2rayN配置使用教程&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios&quot;&gt;iPhone/iPad/iOS V2ray/SS 翻墙APP教程&lt;/a&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/iphone%E7%BF%BB%E5%A2%99&quot;&gt;iphone翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios/AppleID.md&quot;&gt;注册苹果美区 Apple ID 帐号并购买APP指南&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios/fqByLan.md&quot;&gt;Iphone/iPad通过电脑局域网共享翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios/PotatsoLite.md&quot;&gt;Potatso教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios/Shadowrocket.md&quot;&gt;Shadowrocket小火箭配置使用教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios/QuantumultX.md&quot;&gt;Quantumult X 配置使用简易教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/ios/Surge.md&quot;&gt;iOS翻墙之Surge教程&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android&quot;&gt;Android 安卓翻墙APP教程&lt;/a&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/v2free.md&quot;&gt;V2free安卓翻墙教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/clash.md&quot;&gt;Clash for android 教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/BifrostV.md&quot;&gt;BifrostV 教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/Shadowsocks.md&quot;&gt;Shadowsocks for android 教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/ShadowsocksR.md&quot;&gt;SSR 安卓翻墙教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/Surfboard.md&quot;&gt;Surfboard 教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/android/V2RayNG.md&quot;&gt;V2RayNG 教程&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/macos&quot;&gt;Mac翻墙软件教程&lt;/a&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/%E8%8B%B9%E6%9E%9C%E7%94%B5%E8%84%91MAC%E7%BF%BB%E5%A2%99&quot;&gt;苹果电脑MAC翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/macos/ClashX.md&quot;&gt;macOS翻墙之ClashX翻墙教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/macos/V2RayU.md&quot;&gt;macOS翻墙之V2rayU教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/macos/Surge.md&quot;&gt;macOS翻墙之Surge教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/macos/V2rayX.md&quot;&gt;macOS翻墙之V2rayX教程&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/router&quot;&gt;路由器翻墙教程&lt;/a&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/router/Merlin.md&quot;&gt;梅林路由器翻墙教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/router/OpenWRT.md&quot;&gt;OpenWRT路由器翻墙教程&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/linux&quot;&gt;Linux翻墙教程&lt;/a&gt;&lt;/h2&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/tree/master/game&quot;&gt;游戏机翻墙教程&lt;/a&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/PS4-PS5%E6%B8%B8%E6%88%8F%E6%9C%BA%E9%80%9A%E8%BF%87%E5%B1%80%E5%9F%9F%E7%BD%91%E7%BF%BB%E5%A2%99%E6%95%99%E7%A8%8B.md&quot;&gt;PS4-PS5游戏机通过局域网翻墙，加速游戏，以及下载游戏教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/SStap%E5%92%8CNetch%E5%85%8D%E8%B4%B9%E6%B8%B8%E6%88%8F%E5%8A%A0%E9%80%9F%E5%99%A8%E6%95%99%E7%A8%8B.md&quot;&gt;SStap和Netch免费游戏加速器教程&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/Switch%E3%80%81%20PlayStation%E3%80%81Xbox%E7%AD%89%E6%B8%B8%E6%88%8F%E6%9C%BA%E7%BF%BB%E5%A2%99%E6%95%99%E7%A8%8B%EF%BC%8C%E5%88%A9%E7%94%A8MAC%E7%94%B5%E8%84%91%E5%81%9A%E6%97%81%E8%B7%AF%E7%94%B1%E5%8A%A0%E9%80%9F.md&quot;&gt;Switch、 PlayStation、Xbox等游戏机翻墙教程，利用MAC电脑做旁路由加速&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/Windows%E5%A6%82%E4%BD%95%E5%85%B1%E4%BA%ABWifi%E6%97%A0%E7%BA%BF%E7%BD%91%E5%8D%A1%E7%BF%BB%E5%A2%99%E7%83%AD%E7%82%B9%E7%BB%99%E5%85%B6%E5%AE%83%E8%AE%BE%E5%A4%87%E7%BF%BB%E5%A2%99.md&quot;&gt;Windows如何共享Wifi无线网卡翻墙热点给其它设备翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/Mac%E7%94%B5%E8%84%91%E4%BD%BF%E7%94%A8ClashX%20Pro%E4%BD%9C%E4%B8%BA%E7%BD%91%E5%85%B3%E6%97%81%E8%B7%AF%E7%94%B1%E7%BB%99%E5%85%B6%E5%AE%83%E8%AE%BE%E5%A4%87%E7%BF%BB%E5%A2%99.md&quot;&gt;Mac电脑使用ClashX Pro作为网关旁路由给其它设备翻墙&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/%E5%9C%A8Mac%E4%B8%8A%E4%BD%BF%E7%94%A8clashx%20pro%E7%BB%99switch%E5%BC%80%E5%90%AF%E6%B8%B8%E6%88%8F%E5%8A%A0%E9%80%9F.md&quot;&gt;在Mac上使用clashx pro给switch开启游戏加速&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/raw/master/game/%E8%8B%B9%E6%9E%9C%E7%94%B5%E8%A7%86Apple%20Tv%E7%BF%BB%E5%A2%99%E6%8C%87%E5%8D%97.md&quot;&gt;苹果电视Apple Tv翻墙指南&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;ChromeGo - Chrome一键翻墙包&lt;/h2&gt; 
&lt;p&gt;一个集成Goflyway、v2ray、Daze、SSR、Brook、Lightsocks、trojan、蓝灯、psiphon等N多翻墙工具的电脑翻墙包（推荐按前面所列顺序依次尝试），所有工具全部内置免费服务器，长期更新。由于国内网络环境复杂、地区不同，网络运营商不同，封锁情况都不同，所以使用效果会有差别，有的地区几乎所有的软件都能使用，有的只能用几款，因此具体哪款软件适合你的网络环境，需要你自己来尝试。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;推荐：&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/V2ray%E6%9C%BA%E5%9C%BA&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bannedbook/fanqiang/master/v2ss/images/v2free.jpg&quot; height=&quot;300&quot; alt=&quot;V2free翻墙-不限流量、高速稳定、性价比超强&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;下载Chrome一键翻墙包&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/bannedbook/fanqiang/wiki/Chrome%E4%B8%80%E9%94%AE%E7%BF%BB%E5%A2%99%E5%8C%85&quot;&gt;Chrome一键翻墙包&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;使用Chrome一键翻墙包&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;请首先自行安装Google Chrome 浏览器，然后下载Chrome一键翻墙包，本软件会自动调用Google Chrome 浏览器翻墙。 下载后，解压出来，请不要解压到含有中文或空格的目录路径，请不要不解压就直接从压缩包里运行！不解压会出错！ 下载后，请认真阅读里面的使用帮助说明，然后 0.xx-10.xx翻墙 可依次尝试。 自动回复最新翻墙信息网址：freeman105@gmail.com，邮箱不解答问题,如需反馈交流，请&lt;a href=&quot;https://github.com/bannedbook/fanqiang/issues&quot;&gt;点我&lt;/a&gt;或加入翻墙电报群: &lt;a href=&quot;https://t.me/fqchat&quot;&gt;https://t.me/fqchat&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;版权声明&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;请随意分发，勿做商业使用。&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/56d3ac33040e49865d94547a7b22d21ea121c6f27f875e4ad424178a1a5fa1f2/bannedbook/fanqiang" medium="image" />
      
    </item>
    
    <item>
      <title>koiverse/ArchiveTune</title>
      <link>https://github.com/koiverse/ArchiveTune</link>
      <description>&lt;p&gt;The Cutest Material 3 Expressive Music Player With Support Local File and Youtube Music for Android.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/icon.png&quot; width=&quot;160&quot; height=&quot;160&quot; alt=&quot;ArchiveTune Logo&quot; style=&quot;border-radius: 22%&quot; /&gt; 
 &lt;h1&gt;ArchiveTune&lt;/h1&gt; 
 &lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/README.md&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/🇺🇸%20English-6366f1?style=for-the-badge&amp;amp;labelColor=1e1e2e&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/README_JA.md&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/🇯🇵%20日本語-6366f1?style=for-the-badge&amp;amp;labelColor=1e1e2e&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
 &lt;p align=&quot;center&quot;&gt; &lt;strong&gt;Redefining the YouTube Music Experience on Android.&lt;/strong&gt; &lt;br /&gt; &lt;em&gt;It’s high-performance, privacy-focused, and packed with features for people who really care about their experience.&lt;/em&gt; &lt;/p&gt; 
 &lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://archivetune.koiiverse.cloud&quot;&gt;&lt;b&gt;Official Website&lt;/b&gt;&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/#features&quot;&gt;&lt;b&gt;Features&lt;/b&gt;&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/PRIVACY.md&quot;&gt;&lt;b&gt;Privacy&lt;/b&gt;&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/#download-now&quot;&gt;&lt;b&gt;Download&lt;/b&gt;&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/#screenshots&quot;&gt;&lt;b&gt;Screenshots&lt;/b&gt;&lt;/a&gt; • &lt;a href=&quot;https://github.com/koiverse/ArchiveTune/issues/new/choose&quot;&gt;&lt;b&gt;Support&lt;/b&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;div align=&quot;center&quot;&gt; 
  &lt;img src=&quot;https://img.shields.io/github/v/release/koiverse/ArchiveTune?style=for-the-badge&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&amp;amp;logo=github&quot; alt=&quot;Latest Version&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/github/downloads/koiverse/ArchiveTune/total?style=for-the-badge&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&amp;amp;logo=github&quot; alt=&quot;Downloads&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/github/stars/koiverse/ArchiveTune?style=for-the-badge&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&amp;amp;logo=github&quot; alt=&quot;Stars&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/github/license/koiverse/ArchiveTune?style=for-the-badge&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&quot; alt=&quot;License&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/badge/Architecture-MVVM-6366f1?style=for-the-badge&amp;amp;labelColor=1e1e2e&amp;amp;logo=kotlin&quot; alt=&quot;MVVM Architecture&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/badge/Language-Kotlin-7f52ff?style=for-the-badge&amp;amp;logo=kotlin&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&quot; alt=&quot;Kotlin Language&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/badge/Toolkit-Jetpack_Compose-4285f4?style=for-the-badge&amp;amp;logo=jetpack-compose&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&quot; alt=&quot;Jetpack Compose Toolkit&quot; /&gt; 
  &lt;img src=&quot;https://img.shields.io/badge/Design-Material_3-000000?style=for-the-badge&amp;amp;logo=material-design&amp;amp;color=6366f1&amp;amp;labelColor=1e1e2e&quot; alt=&quot;Material Design 3&quot; /&gt; 
  &lt;a href=&quot;https://t.me/ArchiveTuneGC&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&amp;amp;logo=telegram&amp;amp;logoColor=white&quot; alt=&quot;Telegram&quot; /&gt;&lt;/a&gt; 
  &lt;a href=&quot;https://discord.gg/XF2fpb9rTq&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&amp;amp;logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; 
 &lt;/div&gt; 
 &lt;br /&gt; 
 &lt;a href=&quot;https://trendshift.io/repositories/17521&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://trendshift.io/api/badge/repositories/17521&quot; alt=&quot;ArchiveTune | Trendshift&quot; style=&quot;width: 250px; height: 55px;&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;p&gt;&lt;strong&gt;ArchiveTune&lt;/strong&gt; isn’t just another generic YouTube Music wrapper. It’s a fully custom-built player made from the ground up, because we think your music should stay private, look clean, and work exactly the way you expect. If you care about sound quality and want something that actually feels good to use, this is it.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report 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;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Geographic Availability:&lt;/strong&gt; If YouTube Music is not supported in your region, a VPN or proxy set to a supported region is required for initial data fetching.&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📸 Showcase&lt;/h2&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_1.jpg&quot; alt=&quot;Browse&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_2.jpg&quot; alt=&quot;Live Lyrics&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_3.jpg&quot; alt=&quot;Theme Customization&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_4.jpg&quot; alt=&quot;Live Statistics&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_5.jpg&quot; alt=&quot;Artist&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_6.jpg&quot; alt=&quot;Album&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_7.jpg&quot; alt=&quot;Player&quot; width=&quot;30%&quot; /&gt; 
 &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/main/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot_8.jpg&quot; alt=&quot;Settings&quot; width=&quot;30%&quot; /&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;✨ Features&lt;/h2&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;table&gt; 
  &lt;tbody&gt;
   &lt;tr&gt; 
    &lt;td width=&quot;50%&quot; valign=&quot;top&quot;&gt; 
     &lt;div align=&quot;left&quot;&gt; 
      &lt;h3&gt;Playback&lt;/h3&gt; 
      &lt;ul&gt; 
       &lt;li&gt;Ad-free playback with background listening&lt;/li&gt; 
       &lt;li&gt;Your playlists, liked songs, and subscriptions appear after sign-in&lt;/li&gt; 
       &lt;li&gt;Support local file and local song playback &lt;/li&gt;
       &lt;li&gt;Fast startup and lightweight performance&lt;/li&gt; 
       &lt;li&gt;Built for a private, uninterrupted listening experience&lt;/li&gt; 
      &lt;/ul&gt; 
     &lt;/div&gt; &lt;/td&gt; 
    &lt;td width=&quot;50%&quot; valign=&quot;top&quot;&gt; 
     &lt;div align=&quot;left&quot;&gt; 
      &lt;h3&gt;Audio&lt;/h3&gt; 
      &lt;ul&gt; 
       &lt;li&gt;EBU R128 loudness normalization&lt;/li&gt; 
       &lt;li&gt;Tempo, pitch, and playback speed controls&lt;/li&gt; 
       &lt;li&gt;Crossfade between tracks&lt;/li&gt; 
       &lt;li&gt;System equalizer and spatial audio integration&lt;/li&gt; 
      &lt;/ul&gt; 
     &lt;/div&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td width=&quot;50%&quot; valign=&quot;top&quot;&gt; 
     &lt;div align=&quot;left&quot;&gt; 
      &lt;h3&gt;Lyrics &amp;amp; Discovery&lt;/h3&gt; 
      &lt;ul&gt; 
       &lt;li&gt;Live synced lyrics&lt;/li&gt; 
       &lt;li&gt;Lyrics translation and romanization&lt;/li&gt; 
       &lt;li&gt;Music recognition for songs around you&lt;/li&gt; 
       &lt;li&gt;Listening statistics whenever you want them&lt;/li&gt; 
      &lt;/ul&gt; 
     &lt;/div&gt; &lt;/td&gt; 
    &lt;td width=&quot;50%&quot; valign=&quot;top&quot;&gt; 
     &lt;div align=&quot;left&quot;&gt; 
      &lt;h3&gt;Sync &amp;amp; Social&lt;/h3&gt; 
      &lt;ul&gt; 
       &lt;li&gt;YouTube Music account integration&lt;/li&gt; 
       &lt;li&gt;Last.fm scrobbling&lt;/li&gt; 
       &lt;li&gt;ListenBrainz history sync&lt;/li&gt; 
       &lt;li&gt;Discord rich presence support&lt;/li&gt; 
      &lt;/ul&gt; 
     &lt;/div&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td width=&quot;50%&quot; valign=&quot;top&quot;&gt; 
     &lt;div align=&quot;left&quot;&gt; 
      &lt;h3&gt;Interface&lt;/h3&gt; 
      &lt;ul&gt; 
       &lt;li&gt;Material 3 design language&lt;/li&gt; 
       &lt;li&gt;Album-art powered dynamic colors&lt;/li&gt; 
       &lt;li&gt;Responsive layouts for different screen sizes&lt;/li&gt; 
       &lt;li&gt;Clean browsing, player, artist, album, and lyrics views&lt;/li&gt; 
      &lt;/ul&gt; 
     &lt;/div&gt; &lt;/td&gt; 
    &lt;td width=&quot;50%&quot; valign=&quot;top&quot;&gt; 
     &lt;div align=&quot;left&quot;&gt; 
      &lt;h3&gt;Customization&lt;/h3&gt; 
      &lt;ul&gt; 
       &lt;li&gt;Deep playback and interface settings&lt;/li&gt; 
       &lt;li&gt;Gesture customization&lt;/li&gt; 
       &lt;li&gt;Animation and layout tuning&lt;/li&gt; 
       &lt;li&gt;Flexible controls to shape the app around your workflow&lt;/li&gt; 
      &lt;/ul&gt; 
     &lt;/div&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt;
 &lt;/table&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📥 Download Now&lt;/h2&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;h2&gt;Stable Release&lt;/h2&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th align=&quot;center&quot;&gt;Obtainium&lt;/th&gt; 
    &lt;th align=&quot;center&quot;&gt;IzzyOnDroid&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot;&gt; &lt;a href=&quot;https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://github.com/koiverse/ArchiveTune/&quot;&gt; &lt;img src=&quot;https://github.com/ImranR98/Obtainium/raw/main/assets/graphics/badge_obtainium.png&quot; height=&quot;50&quot; alt=&quot;Get ArchiveTune on Obtainium&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot;&gt; &lt;a href=&quot;https://apt.izzysoft.de/fdroid/index/apk/moe.koiverse.archivetune&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/757d5932832e1da27ced56de98c5ad1275cf0db1/assets/IzzyOnDroidButtonBorder.svg?sanitize=true&quot; height=&quot;50&quot; alt=&quot;Get ArchiveTune on IzzyOnDroid&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;th align=&quot;center&quot; colspan=&quot;2&quot;&gt;GitHub&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot; colspan=&quot;2&quot;&gt; &lt;a href=&quot;https://github.com/koiverse/ArchiveTune/releases/latest&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/refs/heads/main/assets/badge_github.png&quot; height=&quot;50&quot; alt=&quot;Get ArchiveTune on GitHub&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;th align=&quot;center&quot;&gt;OpenAPK&lt;/th&gt; 
    &lt;th align=&quot;center&quot;&gt;Unclouded&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot;&gt; &lt;a href=&quot;https://www.openapk.net/archivetune/moe.koiverse.archivetune/&quot;&gt; &lt;img src=&quot;https://www.openapk.net/images/openapk-badge.png&quot; height=&quot;75&quot; alt=&quot;Get ArchiveTune on OpenAPK&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot;&gt; &lt;a href=&quot;https://unclouded.app/apps/archivetune/&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/refs/heads/dev/assets/badge_unclouded.png&quot; height=&quot;50&quot; alt=&quot;Get ArchiveTune on Unclouded&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;h2&gt;Nightly Build&lt;/h2&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th align=&quot;center&quot;&gt;GitHub Actions&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot;&gt; &lt;a href=&quot;https://nightly.link/koiverse/ArchiveTune/workflows/build/dev/app-mobile-universal-release&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/refs/heads/main/assets/badge_github.png&quot; height=&quot;50&quot; alt=&quot;Download the latest ArchiveTune nightly build&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/div&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert 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;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt; The trusted download source is listed above; we are not responsible for any risks you may encounter from downloading from other sources.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;❓ Need Help or Have Questions?&lt;/h2&gt; 
&lt;p&gt;Join Our Telegram Channels or Discord Servers for Support and Discussion.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://t.me/ArchiveTuneGC&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&amp;amp;logo=telegram&amp;amp;logoColor=white&quot; alt=&quot;Telegram&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/XF2fpb9rTq&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&amp;amp;logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🌍 Globalization&lt;/h2&gt; 
&lt;p&gt;ArchiveTune belongs to everyone. Help us localize the experience for your region.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://translate.codeberg.org/engage/archivetune/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/translate-help?style=for-the-badge&amp;amp;logo=weblate&amp;amp;labelColor=grey&quot; alt=&quot;Static Badge&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://translate.codeberg.org/engage/archivetune/&quot;&gt; &lt;img src=&quot;https://translate.codeberg.org/widget/archivetune/horizontal-blue.svg?sanitize=true&quot; alt=&quot;Translation status&quot; /&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h3&gt;✨ Project Contributors&lt;/h3&gt; 
&lt;a href=&quot;https://github.com/koiverse/ArchiveTune/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=koiverse/ArchiveTune&quot; /&gt; &lt;/a&gt; 
&lt;h3&gt;🛠️ Development &amp;amp; Engineering&lt;/h3&gt; 
&lt;p&gt;Interested in building the project or contributing? ArchiveTune is built on a high-performance Kotlin stack. &lt;a href=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/main/CONTRIBUTING.md&quot;&gt;&lt;b&gt;Read the Build &amp;amp; Contribution Guide →&lt;/b&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;⭐ Support the Project&lt;/h3&gt; 
&lt;p&gt;ArchiveTune is free and open-source. If it brings you joy, consider supporting its development!&lt;/p&gt; 
&lt;h5&gt;Tribe&lt;/h5&gt; 
&lt;a href=&quot;https://koiiverse.cloud/donate&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://github.com/koiverse/ArchiveTune/raw/dev/assets/tribe.png?raw=true&quot; alt=&quot;Buy Me a Coffee&quot; width=&quot;160&quot; /&gt; &lt;/a&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🤝 Acknowledgments&lt;/h2&gt; 
&lt;p&gt;We stand on the shoulders of open-source giants:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Metrolist&lt;/strong&gt; by &lt;a href=&quot;https://github.com/mostafaalagamy/Metrolist&quot;&gt;Mostafa Alagamy&lt;/a&gt; For Base framework.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Kizzy&lt;/strong&gt; by &lt;a href=&quot;https://github.com/dead8309/Kizzy&quot;&gt;dead8309&lt;/a&gt; For Discord Integration.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;SimpMusic&lt;/strong&gt; by &lt;a href=&quot;https://github.com/maxrave-dev/SimpMusic&quot;&gt;maxrave-dev&lt;/a&gt; For Lyrics API Provider.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://better-lyrics.boidu.dev/&quot;&gt;BetterLyrics&lt;/a&gt; For word-by-word Lyrics API Provider &amp;amp; Artwork Provider.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/material-foundation/material-color-utilities&quot;&gt;Material Color Utilities&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/Ashinch/ReadYou&quot;&gt;Read You&lt;/a&gt; and &lt;a href=&quot;https://github.com/JunkFood02/Seal&quot;&gt;Seal&lt;/a&gt; for Ui Components.&lt;/li&gt; 
 &lt;li&gt;The global community of translators and beta testers.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;⚖️ Legal Disclaimer&lt;/h2&gt; 
&lt;p&gt;ArchiveTune is an independent third-party client.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Not affiliated with Google LLC or YouTube.&lt;/li&gt; 
 &lt;li&gt;Does not bypass YouTube&#39;s technical protections.&lt;/li&gt; 
 &lt;li&gt;Users are encouraged to support artists by purchasing music via official channels.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/refs/heads/dev/fastlane/metadata/android/en-US/images/ArchiveTuneFull.png&quot; alt=&quot;ArchiveTune Banner&quot; style=&quot;width: 100%; max-width: 500px;&quot; /&gt; 
 &lt;p&gt;&lt;b&gt;If ArchiveTune elevated your music experience, please consider giving us a ⭐&lt;/b&gt;&lt;/p&gt; 
 &lt;br /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/koiverse/ArchiveTune/refs/heads/dev/assets/badge_part.png&quot; alt=&quot;ArchiveTune Banner&quot; style=&quot;width: 160px&quot; /&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/1048623630/5b367518-d406-47c5-b63e-e6f8e0306d5d" medium="image" />
      
    </item>
    
    <item>
      <title>amir1376/ab-download-manager</title>
      <link>https://github.com/amir1376/ab-download-manager</link>
      <description>&lt;p&gt;A Download Manager that speeds up your downloads&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://abdownloadmanager.com&quot; target=&quot;_blank&quot;&gt; &lt;img width=&quot;180&quot; src=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/assets/logo/app_logo_with_background.svg?sanitize=true&quot; alt=&quot;AB Download Manager Logo&quot; /&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h1 align=&quot;center&quot;&gt;AB Download Manager&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/amir1376/ab-download-manager/releases/latest&quot;&gt;&lt;img alt=&quot;GitHub Release&quot; src=&quot;https://img.shields.io/github/v/release/amir1376/ab-download-manager?color=greenlight&amp;amp;label=latest%20release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://abdownloadmanager.com&quot;&gt;&lt;img alt=&quot;AB Download Manager Website&quot; src=&quot;https://img.shields.io/badge/project-website-purple?&amp;amp;labelColor=gray&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://t.me/abdownloadmanager_discussion&quot;&gt;&lt;img alt=&quot;Telegram Group&quot; src=&quot;https://img.shields.io/badge/Telegram-Group-blue?logo=telegram&amp;amp;labelColor=gray&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://t.me/abdownloadmanager&quot;&gt;&lt;img alt=&quot;Telegram Channel&quot; src=&quot;https://img.shields.io/badge/Telegram-Channel-blue?logo=telegram&amp;amp;labelColor=gray&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://crowdin.com/project/ab-download-manager&quot;&gt;&lt;img alt=&quot;Crowdin&quot; src=&quot;https://badges.crowdin.net/ab-download-manager/localized.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;a href=&quot;https://abdownloadmanager.com&quot; target=&quot;_blank&quot;&gt; &lt;img alt=&quot;AB Download Manager Banner&quot; src=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/assets/banners/app_banner.png&quot; /&gt; &lt;/a&gt; 
&lt;h2&gt;Description&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://abdownloadmanager.com&quot;&gt;AB Download Manager&lt;/a&gt; is a desktop app that helps you manage and organize your downloads more efficiently than ever before.&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;⚡️ Faster Download Speed&lt;/li&gt; 
 &lt;li&gt;⏰ Queues and Schedulers&lt;/li&gt; 
 &lt;li&gt;🌐 Browser Extensions&lt;/li&gt; 
 &lt;li&gt;💻 Multiplatform (Android / Windows / Linux / Mac)&lt;/li&gt; 
 &lt;li&gt;🌙 Multiple Themes (Dark/Light/Black and more) with modern UI&lt;/li&gt; 
 &lt;li&gt;❤️ Free and Open Source&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Please visit &lt;a href=&quot;https://abdownloadmanager.com&quot;&gt;Project Website&lt;/a&gt; for more info.&lt;/p&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;h3&gt;Download and Install the App&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://abdownloadmanager.com&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Official%20Website-897BFF?logo=abdownloadmanager&amp;amp;logoColor=fff&amp;amp;style=flat-square&quot; alt=&quot;Official Website&quot; height=&quot;32&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/amir1376/ab-download-manager/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/GitHub%20Releases-2a2f36?logo=github&amp;amp;logoColor=fff&amp;amp;style=flat-square&quot; alt=&quot;GitHub Releases&quot; height=&quot;32&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h4&gt;Installation script (Linux)&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;bash &amp;lt;(curl -fsSL https://raw.githubusercontent.com/amir1376/ab-download-manager/master/scripts/install.sh)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Winget or Scoop (for Windows)&lt;/h4&gt; 
&lt;p&gt;&lt;strong&gt;winget&lt;/strong&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;winget install amir1376.ABDownloadManager
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;scoop&lt;/strong&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scoop install extras/abdownloadmanager
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Homebrew (for macOS &amp;amp; Linux)&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew tap amir1376/tap &amp;amp;&amp;amp; brew install --cask ab-download-manager
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;⚠️ &lt;strong&gt;Warning:&lt;/strong&gt; This software is NOT on Google Play or other app stores unless listed here. Any version &lt;strong&gt;claiming to be or related to this project&lt;/strong&gt; should be considered SCAM and UNSAFE.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;For alternative installation methods, uninstallation instructions, and more details, please refer to the &lt;a href=&quot;https://github.com/amir1376/ab-download-manager/wiki/&quot;&gt;wiki&lt;/a&gt; page.&lt;/p&gt; 
&lt;h3&gt;Browser Extensions&lt;/h3&gt; 
&lt;p&gt;You can download the browser extension to integrate the app with your browser.&lt;/p&gt; 
&lt;p align=&quot;left&quot;&gt; &lt;a href=&quot;https://addons.mozilla.org/firefox/addon/ab-download-manager/&quot;&gt; 
  &lt;picture&gt; 
   &lt;img alt=&quot;Chrome Extension&quot; src=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/assets/banners/firefox-extension.png&quot; height=&quot;48&quot; /&gt; 
  &lt;/picture&gt; &lt;/a&gt; &lt;a href=&quot;https://chromewebstore.google.com/detail/bbobopahenonfdgjgaleledndnnfhooj&quot;&gt; 
  &lt;picture&gt; 
   &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;./assets/banners/chrome-extension_dark.png&quot; height=&quot;48&quot; /&gt; 
   &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;./assets/banners/chrome-extension_light.png&quot; height=&quot;48&quot; /&gt; 
   &lt;img alt=&quot;Chrome Extension&quot; src=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/assets/banners/chrome-extension_light.png&quot; height=&quot;48&quot; /&gt; 
  &lt;/picture&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;Screenshots&lt;/h2&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;./assets/screenshots/app-home_dark.png&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;./assets/screenshots/app-home_light.png&quot; /&gt; 
  &lt;img alt=&quot;App Home Section&quot; src=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/assets/screenshots/app-home_dark.png&quot; /&gt; 
 &lt;/picture&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;./assets/screenshots/app-download_dark.png&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;./assets/screenshots/app-download_light.png&quot; /&gt; 
  &lt;img alt=&quot;App Download Section&quot; src=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/assets/screenshots/app-download_dark.png&quot; /&gt; 
 &lt;/picture&gt; 
&lt;/div&gt; 
&lt;h2&gt;Project Status &amp;amp; Feedback&lt;/h2&gt; 
&lt;p&gt;Please keep in mind that this project is in the beginning of its journey. &lt;strong&gt;Lots of features&lt;/strong&gt; are on the way!&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;But&lt;/strong&gt;, in the meantime you may face &lt;strong&gt;Bugs or Problems&lt;/strong&gt;. If you do, please report them to me via the &lt;a href=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/#community&quot;&gt;Community chat&lt;/a&gt; or through &lt;code&gt;GitHub Issues&lt;/code&gt;, and I&#39;ll do my best to fix them ASAP.&lt;/p&gt; 
&lt;h2&gt;Community&lt;/h2&gt; 
&lt;p&gt;You can join our &lt;a href=&quot;https://t.me/abdownloadmanager_discussion&quot;&gt;Telegram Group&lt;/a&gt; to:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Report problems&lt;/li&gt; 
 &lt;li&gt;Suggest features&lt;/li&gt; 
 &lt;li&gt;Get help with the app&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Repositories And Source Code&lt;/h2&gt; 
&lt;p&gt;There are multiple repositories related to the &lt;strong&gt;AB Download Manager&lt;/strong&gt; project:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Repository&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;a href=&quot;https://github.com/amir1376/ab-download-manager&quot;&gt;Main Application&lt;/a&gt; (You are here)&lt;/td&gt; 
   &lt;td&gt;Contains the &lt;strong&gt;Application&lt;/strong&gt; that runs on your &lt;strong&gt;device&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/amir1376/ab-download-manager-browser-integration&quot;&gt;Browser Integration&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Contains the &lt;strong&gt;Browser Extension&lt;/strong&gt; to be installed on your &lt;strong&gt;browser&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/amir1376/ab-download-manager-website&quot;&gt;Website&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Contains the &lt;strong&gt;AB Download Manager&lt;/strong&gt; &lt;a href=&quot;https://abdownloadmanager.com&quot;&gt;website&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;I&#39;ve spent a lot of time to create this project.&lt;/p&gt; 
&lt;p&gt;If you like my work, please consider giving it a ⭐ — thanks! ❤️&lt;/p&gt; 
&lt;h2&gt;Bug Report&lt;/h2&gt; 
&lt;p&gt;If you notice any bugs in the source code, please report them via the &lt;code&gt;GitHub Issues&lt;/code&gt; section.&lt;/p&gt; 
&lt;h2&gt;Build From Source&lt;/h2&gt; 
&lt;p&gt;To compile and test the desktop app on your local machine, follow these steps:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Clone the project.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Download and extract the &lt;a href=&quot;https://github.com/JetBrains/JetBrainsRuntime/releases&quot;&gt;JBR&lt;/a&gt;, and make it available by either:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Adding it to your &lt;code&gt;PATH&lt;/code&gt;, or&lt;/li&gt; 
   &lt;li&gt;Setting the &lt;code&gt;JAVA_HOME&lt;/code&gt; environment variable to its installation path.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Navigate to the project directory, open your terminal and execute the following command:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./gradlew createReleaseFolderForCi
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;The output will be available at:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;&amp;lt;project_dir&amp;gt;/build/ci-release
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;. This project is compiled and published by GitHub actions &lt;a href=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/.github/workflows/publish.yml&quot;&gt;here&lt;/a&gt;, so if you faced any problem you can check that too.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Translations&lt;/h2&gt; 
&lt;p&gt;If you’d like to help translate AB Download Manager into another language, or improve existing translations, you can do so on Crowdin. Here’s how:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Visit the project in &lt;a href=&quot;https://crowdin.com/project/ab-download-manager&quot;&gt;Crowdin&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Please DO NOT submit translations via pull requests.&lt;/li&gt; 
 &lt;li&gt;If you want to add a new language, please see &lt;a href=&quot;https://github.com/amir1376/ab-download-manager/issues/144&quot;&gt;this&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Contribution&lt;/h2&gt; 
&lt;p&gt;If you want to contribute to this project, please read &lt;a href=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/CONTRIBUTING.md&quot;&gt;Contributing Guide&lt;/a&gt; first.&lt;/p&gt; 
&lt;h2&gt;Support the Project&lt;/h2&gt; 
&lt;p&gt;If you&#39;d like to support the project, you can find details on how to donate in the &lt;a href=&quot;https://raw.githubusercontent.com/amir1376/ab-download-manager/master/DONATE.md&quot;&gt;DONATE.md&lt;/a&gt; file.&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/825187044/e982f7e5-20e1-4842-a2f3-6281ef8b9f71" medium="image" />
      
    </item>
    
    <item>
      <title>ZalithLauncher/ZalithLauncher2</title>
      <link>https://github.com/ZalithLauncher/ZalithLauncher2</link>
      <description>&lt;p&gt;A Minecraft: Java Edition Launcher for Android&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Zalith Launcher 2&lt;/h1&gt; 
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/ZalithLauncher/ZalithLauncher2/total&quot; alt=&quot;Downloads&quot; /&gt; &lt;a href=&quot;https://afdian.com/a/MovTery&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/sponsor-30363D?logo=GitHub-Sponsors&quot; alt=&quot;Sponsor&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/ZalithLauncher/ZalithLauncher2/main/README_ZH_CN.md&quot;&gt;简体中文&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/ZalithLauncher/ZalithLauncher2/main/README_ZH_TW.md&quot;&gt;繁體中文&lt;/a&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report 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;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;This project is &lt;strong&gt;completely separate&lt;/strong&gt; from &lt;a href=&quot;https://github.com/ZalithLauncher/ZalithLauncher&quot;&gt;ZalithLauncher&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;Zalith Launcher 2&lt;/strong&gt; is a newly designed launcher for &lt;strong&gt;Android devices&lt;/strong&gt; tailored for &lt;a href=&quot;https://www.minecraft.net/&quot;&gt;Minecraft: Java Edition&lt;/a&gt;. The project uses &lt;a href=&quot;https://github.com/PojavLauncherTeam/PojavLauncher/tree/v3_openjdk/app_pojavlauncher/src/main/jni&quot;&gt;PojavLauncher&lt;/a&gt; as its core launching engine and features a modern UI built with &lt;strong&gt;Jetpack Compose&lt;/strong&gt; and &lt;strong&gt;Material Design 3&lt;/strong&gt;.&lt;br /&gt; We are currently building our official website &lt;a href=&quot;https://zalithlauncher.cn&quot;&gt;zalithlauncher.cn&lt;/a&gt;&lt;br /&gt; Additionally, we are aware that a third-party website has been set up using the name “Zalith Launcher”, appearing to be official. Please note: &lt;strong&gt;this site was not created by us&lt;/strong&gt;. It exploits the name to display ads for profit. We &lt;strong&gt;do not participate in, endorse, or trust&lt;/strong&gt; such content.&lt;br /&gt; Please stay vigilant and &lt;strong&gt;protect your personal privacy&lt;/strong&gt;!&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/ZalithLauncher/ZalithLauncher2/main/.github/notice/DiscordStatus.md&quot;&gt;Discord Server Shutdown Announcement&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;🌐 Language and Translation Support&lt;/h2&gt; 
&lt;p&gt;We are using the Weblate platform to translate Zalith Launcher 2. You&#39;re welcome to join our &lt;a href=&quot;https://hosted.weblate.org/projects/zalithlauncher2&quot;&gt;Weblate project&lt;/a&gt; and contribute to the translations!&lt;br /&gt; Thank you to every language contributor for helping make Zalith Launcher 2 more multilingual and global!&lt;/p&gt; 
&lt;h2&gt;📦 Build Instructions (For Developers)&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;The following section is for developers who wish to contribute or build the project locally.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Requirements&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Android Studio &lt;strong&gt;Bumblebee&lt;/strong&gt; or newer&lt;/li&gt; 
 &lt;li&gt;Android SDK: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Minimum API level&lt;/strong&gt;: 26&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Target API level&lt;/strong&gt;: 35&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;JDK 11&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Build Steps&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone git@github.com:ZalithLauncher/ZalithLauncher2.git
# Open the project in Android Studio and build
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;📜 License&lt;/h2&gt; 
&lt;p&gt;This project is licensed under the &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/ZalithLauncher/ZalithLauncher2/main/LICENSE&quot;&gt;GPL-3.0 license&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt; 
&lt;h3&gt;Additional Terms (Pursuant to Section 7 of the GPLv3 License)&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;When distributing a modified version of this program, you must reasonably modify the program&#39;s name or version number to distinguish it from the original version. (According to &lt;a href=&quot;https://github.com/ZalithLauncher/ZalithLauncher2/raw/969827b/LICENSE#L372-L374&quot;&gt;GPLv3, 7(c)&lt;/a&gt;)&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Modified versions &lt;strong&gt;must not include the original program name &quot;ZalithLauncher&quot; or its abbreviation &quot;ZL&quot; in their name, nor use any name that is similar enough to cause confusion with the official name&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;All modified versions &lt;strong&gt;must clearly indicate that they are “Unofficial Modified Versions” on the program’s startup screen or main interface&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;The application name of the program can be modified in &lt;a href=&quot;https://raw.githubusercontent.com/ZalithLauncher/ZalithLauncher2/main/ZalithLauncher/gradle.properties&quot;&gt;gradle.properties&lt;/a&gt;.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;You must not remove the copyright notices displayed by the program. (According to &lt;a href=&quot;https://github.com/ZalithLauncher/ZalithLauncher2/raw/969827b/LICENSE#L368-L370&quot;&gt;GPLv3, 7(b)&lt;/a&gt;)&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Open Source Libraries and Licenses&lt;/h2&gt; 
&lt;p&gt;This software uses the following open source libraries:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Library&lt;/th&gt; 
   &lt;th&gt;Copyright&lt;/th&gt; 
   &lt;th&gt;License&lt;/th&gt; 
   &lt;th&gt;Official Link&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;androidx-constraintlayout-compose&lt;/td&gt; 
   &lt;td&gt;Copyright © The Android Open Source Project&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://developer.android.com/develop/ui/compose/layouts/constraintlayout&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;androidx-material-icons-core&lt;/td&gt; 
   &lt;td&gt;Copyright © The Android Open Source Project&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://developer.android.com/jetpack/androidx/releases/compose-material&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;androidx-material-icons-extended&lt;/td&gt; 
   &lt;td&gt;Copyright © The Android Open Source Project&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://developer.android.com/jetpack/androidx/releases/compose-material&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ANGLE&lt;/td&gt; 
   &lt;td&gt;Copyright 2018 The ANGLE Project Authors&lt;/td&gt; 
   &lt;td&gt;BSD 3-Clause License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;http://angleproject.org/&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Apache Commons Codec&lt;/td&gt; 
   &lt;td&gt;-&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://commons.apache.org/proper/commons-codec&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Apache Commons Compress&lt;/td&gt; 
   &lt;td&gt;-&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://commons.apache.org/proper/commons-compress&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Apache Commons IO&lt;/td&gt; 
   &lt;td&gt;-&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://commons.apache.org/proper/commons-io&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ByteHook&lt;/td&gt; 
   &lt;td&gt;Copyright © 2020-2024 ByteDance, Inc.&lt;/td&gt; 
   &lt;td&gt;MIT License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bytedance/bhook&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coil Compose&lt;/td&gt; 
   &lt;td&gt;Copyright © 2025 Coil Contributors&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/coil-kt/coil&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coil Gifs&lt;/td&gt; 
   &lt;td&gt;Copyright © 2025 Coil Contributors&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/coil-kt/coil&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coil SVG&lt;/td&gt; 
   &lt;td&gt;Copyright © 2025 Coil Contributors&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/coil-kt/coil&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Fishnet&lt;/td&gt; 
   &lt;td&gt;Copyright © 2025 Kyant&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Kyant0/Fishnet&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;gl4es_extra_extra&lt;/td&gt; 
   &lt;td&gt;Copyright © 2016-2018 Sebastien Chevalier; Copyright (c) 2013-2016 Ryan Hileman&lt;/td&gt; 
   &lt;td&gt;MIT License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/PojavLauncherTeam/gl4es_extra_extra&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gson&lt;/td&gt; 
   &lt;td&gt;Copyright © 2008 Google Inc.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/google/gson&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;kotlinx.coroutines&lt;/td&gt; 
   &lt;td&gt;Copyright © 2000-2020 JetBrains s.r.o.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Kotlin/kotlinx.coroutines&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ktor-client-cio&lt;/td&gt; 
   &lt;td&gt;Copyright © 2000-2023 JetBrains s.r.o.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://ktor.io&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ktor-client-content-negotiation&lt;/td&gt; 
   &lt;td&gt;Copyright © 2000-2023 JetBrains s.r.o.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://ktor.io&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ktor-client-core&lt;/td&gt; 
   &lt;td&gt;Copyright © 2000-2023 JetBrains s.r.o.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://ktor.io&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ktor-http&lt;/td&gt; 
   &lt;td&gt;Copyright © 2000-2023 JetBrains s.r.o.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://ktor.io&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ktor-serialization-kotlinx-json&lt;/td&gt; 
   &lt;td&gt;Copyright © 2000-2023 JetBrains s.r.o.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://ktor.io&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;LWJGL - Lightweight Java Game Library&lt;/td&gt; 
   &lt;td&gt;Copyright © 2012-present Lightweight Java Game Library All rights reserved.&lt;/td&gt; 
   &lt;td&gt;BSD 3-Clause License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/LWJGL/lwjgl3&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;material-color-utilities&lt;/td&gt; 
   &lt;td&gt;Copyright 2021 Google LLC&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/material-foundation/material-color-utilities&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Maven Artifact&lt;/td&gt; 
   &lt;td&gt;Copyright © The Apache Software Foundation&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/apache/maven/tree/maven-3.9.9/maven-artifact&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Media3&lt;/td&gt; 
   &lt;td&gt;Copyright © The Android Open Source Project&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://developer.android.com/jetpack/androidx/releases/media3&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Mesa&lt;/td&gt; 
   &lt;td&gt;Copyright © The Mesa Authors&lt;/td&gt; 
   &lt;td&gt;MIT License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://mesa3d.org/&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;MMKV&lt;/td&gt; 
   &lt;td&gt;Copyright © 2018 THL A29 Limited, a Tencent company.&lt;/td&gt; 
   &lt;td&gt;BSD 3-Clause License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Tencent/MMKV&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Navigation 3&lt;/td&gt; 
   &lt;td&gt;Copyright © The Android Open Source Project&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://developer.android.com/jetpack/androidx/releases/navigation3&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;NBT&lt;/td&gt; 
   &lt;td&gt;Copyright © 2016 - 2020 Querz&lt;/td&gt; 
   &lt;td&gt;MIT License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Querz/NBT&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;NG-GL4ES&lt;/td&gt; 
   &lt;td&gt;Copyright © 2016-2018 Sebastien Chevalier; Copyright © 2013-2016 Ryan Hileman; Copyright (c) 2025-2026 BZLZHH&lt;/td&gt; 
   &lt;td&gt;MIT License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/BZLZHH/NG-GL4ES&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;OkHttp&lt;/td&gt; 
   &lt;td&gt;Copyright © 2019 Square, Inc.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/square/okhttp&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Okio&lt;/td&gt; 
   &lt;td&gt;Copyright © 2013 Square, Inc.&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://square.github.io/okio/&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Process Phoenix&lt;/td&gt; 
   &lt;td&gt;Copyright © 2015 Jake Wharton&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/JakeWharton/ProcessPhoenix&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;proxy-client-android&lt;/td&gt; 
   &lt;td&gt;-&lt;/td&gt; 
   &lt;td&gt;LGPL-3.0 License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/TouchController/TouchController&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Reorderable&lt;/td&gt; 
   &lt;td&gt;Copyright © 2023 Calvin Liang&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Calvin-LL/Reorderable&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;skinview3d&lt;/td&gt; 
   &lt;td&gt;Copyright © 2014-2018 Kent Rasmussen; Copyright © 2017-2022 Haowei Wen, Sean Boult and contributors&lt;/td&gt; 
   &lt;td&gt;MIT License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/bs-community/skinview3d&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;sora-editor&lt;/td&gt; 
   &lt;td&gt;Copyright © 1991, 1999 Free Software Foundation, Inc.&lt;/td&gt; 
   &lt;td&gt;LGPL-2.1 License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Rosemoe/sora-editor&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;StringFog&lt;/td&gt; 
   &lt;td&gt;Copyright © 2016-2023, Megatron King&lt;/td&gt; 
   &lt;td&gt;Apache 2.0&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/MegatronKing/StringFog&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;XZ for Java&lt;/td&gt; 
   &lt;td&gt;Copyright © The XZ for Java authors and contributors&lt;/td&gt; 
   &lt;td&gt;0BSD License&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://tukaani.org/xz/java.html&quot;&gt;Link&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/3a83f7e97f9eb72db72a299232a5b0ceaf8c934a7c1997521c3c471ad296cc05/ZalithLauncher/ZalithLauncher2" medium="image" />
      
    </item>
    
    <item>
      <title>embabel/embabel-agent</title>
      <link>https://github.com/embabel/embabel-agent</link>
      <description>&lt;p&gt;Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Embabel Agent Framework&lt;/h1&gt; 
&lt;img align=&quot;left&quot; src=&quot;https://github.com/embabel/embabel-agent/raw/main/embabel-agent-api/images/315px-Meister_der_Weltenchronik_001.jpg?raw=true&quot; width=&quot;180&quot; /&gt; 
&lt;p&gt;&lt;a href=&quot;https://docs.embabel.com/embabel-agent/guide/0.1.2-SNAPSHOT/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/docs-live-brightgreen&quot; alt=&quot;Docs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://mvnrepository.com/artifact/com.embabel.agent/embabel-agent-api&quot;&gt;&lt;img src=&quot;https://badges.mvnrepository.com/badge/com.embabel.agent/embabel-agent-api/badge.svg?label=MvnRepository&quot; alt=&quot;MvnRepository&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;https://github.com/embabel/embabel-agent/actions/workflows/maven.yml/badge.svg?sanitize=true&quot; alt=&quot;Build&quot; /&gt; &lt;a href=&quot;https://www.yourkit.com/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Profiling-YourKit-blue&quot; alt=&quot;YourKit&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.ej-technologies.com/products/jprofiler/overview.html&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Profiled%20with-JProfiler-blue&quot; alt=&quot;JProfiler&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/summary/new_code?id=embabel_embabel-agent&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=embabel_embabel-agent&amp;amp;metric=alert_status&quot; alt=&quot;Quality Gate Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/t6bjkyj93q&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/1277751399261798401?logo=discord&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/badge/kotlin-%237F52FF.svg?style=for-the-badge&amp;amp;logo=kotlin&amp;amp;logoColor=white&quot; alt=&quot;Kotlin&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&amp;amp;logo=openjdk&amp;amp;logoColor=white&quot; alt=&quot;Java&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/spring-%236DB33F.svg?style=for-the-badge&amp;amp;logo=spring&amp;amp;logoColor=white&quot; alt=&quot;Spring&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Spring%20Boot-6DB33F.svg?style=for-the-badge&amp;amp;logo=Spring-Boot&amp;amp;logoColor=white&quot; alt=&quot;Spring Boot&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/apache%20tomcat-%23F8DC75.svg?style=for-the-badge&amp;amp;logo=apache-tomcat&amp;amp;logoColor=black&quot; alt=&quot;Apache Tomcat&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Apache%20Maven-C71A36?style=for-the-badge&amp;amp;logo=Apache%20Maven&amp;amp;logoColor=white&quot; alt=&quot;Apache Maven&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/JUnit5-25A162.svg?style=for-the-badge&amp;amp;logo=JUnit5&amp;amp;logoColor=white&quot; alt=&quot;JUnit&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/chatGPT-74aa9c?style=for-the-badge&amp;amp;logo=openai&amp;amp;logoColor=white&quot; alt=&quot;ChatGPT&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/jinja-white.svg?style=for-the-badge&amp;amp;logo=jinja&amp;amp;logoColor=black&quot; alt=&quot;Jinja&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/JSON-000?logo=json&amp;amp;logoColor=fff&quot; alt=&quot;JSON&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge&amp;amp;logo=githubactions&amp;amp;logoColor=white&quot; alt=&quot;GitHub Actions&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/SonarQube-black?style=for-the-badge&amp;amp;logo=sonarqube&amp;amp;logoColor=4E9BCD&quot; alt=&quot;SonarQube&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&amp;amp;logo=docker&amp;amp;logoColor=white&quot; alt=&quot;Docker&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/IntelliJIDEA-000000.svg?style=for-the-badge&amp;amp;logo=intellij-idea&amp;amp;logoColor=white&quot; alt=&quot;IntelliJ IDEA&quot; /&gt; &lt;a href=&quot;https://www.apache.org/licenses/LICENSE-2.0&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/license/embabel/embabel-agent?style=for-the-badge&amp;amp;logo=apache&amp;amp;color=brightgreen&quot; alt=&quot;License&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/embabel/embabel-agent/pulse&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/commit-activity/m/embabel/embabel-agent.svg?label=commits&amp;amp;style=for-the-badge&amp;amp;logo=git&amp;amp;logoColor=white&quot; alt=&quot;Commits&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt; 
&lt;p&gt;Embabel (Em-BAY-bel) is a framework for authoring agentic flows on the JVM that seamlessly mix LLM-prompted interactions with code and domain models. Supports intelligent path finding towards goals. Written in Kotlin but offers a natural usage model from Java. From the creator of Spring.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;Key Concepts&lt;/h2&gt; 
&lt;p&gt;Models agentic flows in terms of:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Actions&lt;/strong&gt;: Steps an agent takes&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Goals&lt;/strong&gt;: What an agent is trying to achieve&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Conditions&lt;/strong&gt;: Conditions to assess before executing an action or determining that a goal has been achieved. Conditions are reassessed after each action is executed.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Domain model&lt;/strong&gt;: Objects underpinning the flow and informing Actions, Goals and Conditions.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Plan&lt;/strong&gt;: A sequence of actions to achieve a goal. Plans are dynamically formulated by the system, not the programmer. The system replans after the completion of each action, allowing it to adapt to new information as well as observe the effects of the previous action. This is effectively an &lt;a href=&quot;https://en.wikipedia.org/wiki/OODA_loop&quot;&gt;OODA loop&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Application developers don&#39;t usually have to deal with these concepts directly, as most conditions result from data flow defined in code, allowing the system to infer pre and post conditions.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;These concepts underpin these differentiators versus other agent frameworks:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Sophisticated planning.&lt;/strong&gt; Goes beyond a finite state machine or sequential execution with nesting by introducing a true planning step, using a non-LLM AI algorithm. This enables the system to perform tasks it wasn’t programmed to do by combining known steps in a novel order, as well as make decisions about parallelization and other runtime behavior.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Superior extensibility and reuse&lt;/strong&gt;: Because of dynamic planning, adding more domain objects, actions, goals and conditions can extend the capability of the system, &lt;em&gt;without editing FSM definitions&lt;/em&gt; or existing code.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Strong typing and the benefits of object orientation&lt;/strong&gt;: Actions, goals and conditions are informed by a domain model, which can include behavior. Everything is strongly typed and prompts and manually authored code interact cleanly. No more magic maps. Enjoy full refactoring support.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Other benefits:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Platform abstraction&lt;/strong&gt;: Clean separation between programming model and platform internals allows running locally while potentially offering higher QoS in production without changing application code.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Designed for LLM mixing&lt;/strong&gt;: It is easy to build applications that mix LLMs, ensuring the most cost-effective yet capable solution. This enables the system to leverage the strengths of different models for different tasks. In particular, it facilitates the use of local models for point tasks. This can be important for cost and privacy.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Built on Spring and the JVM,&lt;/strong&gt; making it easy to access existing enterprise functionality and capabilities. For example: 
  &lt;ul&gt; 
   &lt;li&gt;Spring can inject and manage agents, including using Spring AOP to decorate functions.&lt;/li&gt; 
   &lt;li&gt;Robust persistence and transaction management solutions are available.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Designed for testability&lt;/strong&gt; from the ground up. Both unit testing and agent end to end testing are easy.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Flows can be authored in one of two ways:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;An annotation-based model similar to Spring MVC, with types annotated with the Spring stereotype &lt;code&gt;@Agent&lt;/code&gt;, using &lt;code&gt;@Goal&lt;/code&gt;, &lt;code&gt;@Condition&lt;/code&gt; and &lt;code&gt;@Action&lt;/code&gt; methods.&lt;/li&gt; 
 &lt;li&gt;Idiomatic Kotlin DSL with &lt;code&gt;agent {&lt;/code&gt; and &lt;code&gt;action {&lt;/code&gt; blocks.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Either way, flows are backed by a domain model of objects that can have rich behavior.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;We are working toward allowing natural language actions and goals to be deployed.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;The planning step is pluggable.&lt;/p&gt; 
&lt;p&gt;The default planning approach is &lt;a href=&quot;https://medium.com/@vedantchaudhari/goal-oriented-action-planning-34035ed40d0b&quot;&gt;Goal Oriented Action Planning&lt;/a&gt;. GOAP is a popular AI planning algorithm used in gaming. It allows for dynamic decision-making and action selection based on the current state of the world and the goals of the agent.&lt;/p&gt; 
&lt;p&gt;Goals, actions and plans are independent of GOAP. Embabel also supports &lt;a href=&quot;https://en.wikipedia.org/wiki/Utility_system&quot;&gt;Utility AI&lt;/a&gt; out of the box, which can run the same actions but chooses actions based on (potentially dynamic) utility scores rather than strict preconditions and postconditions. This is valuable for exploration and open-ended tasks, when we do not need to achieve a specific goal but want to maximize overall utility.&lt;/p&gt; 
&lt;p&gt;The framework executes via an &lt;code&gt;AgentPlatform&lt;/code&gt; implementation.&lt;/p&gt; 
&lt;p&gt;An agent platform supports the following modes of execution:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Focused&lt;/strong&gt;, where user code requests particular functionality: User code calls a method to run a particular agent, passing in input. This is ideal for code-driven flows such as a flow invoked in response to an incoming event.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Closed&lt;/strong&gt;, where user intent (or another incoming event) is classified to choose an agent. The platform tries to find a suitable agent among all the agents it knows about. Agent choice is dynamic, but only actions defined within the particular agent will run.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Open&lt;/strong&gt;, where the user&#39;s intent is assessed and the platform uses &lt;em&gt;all&lt;/em&gt; its resources to try to achieve it. The platform tries to find a suitable goal among all the goals it knows about and builds a custom agent to achieve it from the start state, including relevant actions and conditions. The platform will not proceed if it is unconvinced as to the applicability of any goal. The &lt;code&gt;GoalChoiceApprover&lt;/code&gt; interface provides developers a way to limit goal choice further.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Open mode is the most powerful, but least deterministic.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;In open mode, the platform is capable of finding novel paths that were not envisioned by developers, and even combining functionality from multiple providers.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Even in open mode, the platform will only perform individual steps that have been specified. (Of course, steps may themselves be LLM transforms, in which case the prompts are controlled by user code but the results are still non-deterministic.)&lt;/p&gt; 
&lt;p&gt;Possible future modes:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Evolving&lt;/strong&gt; mode: Where the platform can work with multiple goals in the same process and modify a running process to add further goals and agents. For example, an action can realize that it has become important to achieve additional goals.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Embabel agent systems will also support federation, both with other Embabel systems (allowing planning to incorporate remote actions and goals) and third party agent frameworks.&lt;/p&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;p&gt;Get an agent running in under 5 minutes.&lt;/p&gt; 
&lt;p&gt;Create your own agent repo from our &lt;a href=&quot;https://github.com/embabel/java-agent-template&quot;&gt;Java&lt;/a&gt; or &lt;a href=&quot;https://github.com/embabel/kotlin-agent-template&quot;&gt;Kotlin&lt;/a&gt; GitHub template by clicking the &quot;Use this template&quot; button.&lt;/p&gt; 
&lt;p&gt;You&#39;ll have an agent running in under a minute if you already have an &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; and have Maven installed.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;📚 For examples and tutorials&lt;/strong&gt;, see the &lt;a href=&quot;https://github.com/embabel/embabel-agent-examples&quot;&gt;Embabel Agent Examples Repository&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;🚗 For a sophisticated, realistic example application&lt;/strong&gt;, see the &lt;a href=&quot;https://github.com/embabel/tripper&quot;&gt;Tripper travel planner agent&lt;/a&gt;&lt;/p&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/embabel/embabel-agent/main/images/tripper_output1.jpg&quot; alt=&quot;Travel Planner Output&quot; width=&quot;600&quot; /&gt; 
&lt;p&gt;&lt;em&gt;AI-generated travel itinerary with detailed recommendations&lt;/em&gt;&lt;/p&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/embabel/embabel-agent/main/images/tripper_map.jpg&quot; alt=&quot;Interactive map&quot; width=&quot;600&quot; /&gt; 
&lt;p&gt;&lt;em&gt;Map link included in output&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;Why Is Embabel Needed?&lt;/h2&gt; 
&lt;p&gt;TL;DR Because the evolution of agent frameworks is early and there&#39;s a lot of room for improvement; because an agent framework on the JVM will deliver great business value.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;em&gt;Why do we need an agent framework at all&lt;/em&gt;? We can write code without higher level abstractions, directly invoking LLMs and controlling flow directly in code. However, a higher level agent framework offers compelling benefits. For example: 
  &lt;ul&gt; 
   &lt;li&gt;Breaking up LLM interactions, making them simpler and more focused. This maximizes reuse and minimizes cost and errors. It often allows us to use cheaper models for point interactions.&lt;/li&gt; 
   &lt;li&gt;Facilitating both unit and integration testing, which remain as important with agentic systems as with any other software systems.&lt;/li&gt; 
   &lt;li&gt;Increasing composability where subflows and individual actions can be reused&lt;/li&gt; 
   &lt;li&gt;Making applications more manageable and robust, enabling a workflow manager to control their execution and retry operations while maintaining previous state&lt;/li&gt; 
   &lt;li&gt;Enhancing safety through the ability to apply guardrails in many places&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;em&gt;Why do we need an agent framework for the JVM when solutions exist in Python?&lt;/em&gt;: While agent frameworks initially appeared predominantly Python, it&#39;s early and there&#39;s plenty of room for novel and superior approaches. The key adjacency is not the LLM--which is a simple HTTP call away--but existing code and infrastructure assets that are more valuable on the JVM than in Python.&lt;/li&gt; 
 &lt;li&gt;&lt;em&gt;Why not use just Spring AI?&lt;/em&gt; Spring AI is great. We build on it, and embrace the Spring component model. However, we believe that most applications should work with higher level APIs. An analogy: Spring AI exists at the level of the Servlet API, while Embabel is more like Spring MVC. Complex requirements are much easier to express and test in Embabel than with direct use of Spring AI.&lt;/li&gt; 
 &lt;li&gt;&lt;em&gt;Why not attempt to contribute this project to Spring?&lt;/em&gt; This project requires different governance from Spring, where most projects exist in stable environments and dependability and stability outweighs rapid innovation. Second, the concepts are not JVM-specific. We hope that Embabel will become the leading agent framework across platforms. While the Spring brand is valuable in Java, it is not in TypeScript or Python.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Show Me The Code&lt;/h2&gt; 
&lt;p&gt;In Java or Kotlin, agent implementation code is intuitive and easy to test.&lt;/p&gt; 
&lt;details open&gt; 
 &lt;summary&gt;Java&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
@Agent(description = &quot;Find news based on a person&#39;s star sign&quot;)
public class StarNewsFinder {

    private final HoroscopeService horoscopeService;
    private final int storyCount;

    // Services are injected by Spring
    public StarNewsFinder(
            HoroscopeService horoscopeService,
            @Value(&quot;${star-news-finder.story.count:5}&quot;) int storyCount) {
        this.horoscopeService = horoscopeService;
        this.storyCount = storyCount;
    }

    @Action
    public StarPerson extractStarPerson(UserInput userInput, Ai ai) {
        return ai
                .withLlm(OpenAiModels.GPT_41)
                .createObjectIfPossible(
                        &quot;&quot;&quot;
                                Create a person from this user input, extracting their name and star sign:
                                %s&quot;&quot;&quot;.formatted(userInput.getContent()),
                        StarPerson.class
                );
    }

    @Action
    public Horoscope retrieveHoroscope(StarPerson starPerson) {
        return new Horoscope(horoscopeService.dailyHoroscope(starPerson.sign()));
    }

    // toolGroups specifies tools that are required for this action to run
    @Action(toolGroups = {CoreToolGroups.WEB})
    public RelevantNewsStories findNewsStories(
            StarPerson person,
            Horoscope horoscope,
            Ai ai) {
        var prompt = &quot;&quot;&quot;
                %s is an astrology believer with the sign %s.
                Their horoscope for today is:
                    &amp;lt;horoscope&amp;gt;%s&amp;lt;/horoscope&amp;gt;
                Given this, use web tools and generate search queries
                to find %d relevant news stories summarize them in a few sentences.
                Include the URL for each story.
                Do not look for another horoscope reading or return results directly about astrology;
                find stories relevant to the reading above.
                
                For example:
                - If the horoscope says that they may
                want to work on relationships, you could find news stories about
                novel gifts
                - If the horoscope says that they may want to work on their career,
                find news stories about training courses.&quot;&quot;&quot;.formatted(
                person.name(), person.sign(), horoscope.summary(), storyCount);
        return ai
                .withDefaultLlm()
                .createObject(prompt, RelevantNewsStories.class);
    }

    // The @AchievesGoal annotation indicates that completing this action
    // achieves the given goal, so the agent can be complete
    @AchievesGoal(
            description = &quot;Write an amusing writeup for the target person based on their horoscope and current news stories&quot;,
            export = @Export(
                    remote = true,
                    name = &quot;starNewsWriteupJava&quot;,
                    startingInputTypes = {StarPerson.class, UserInput.class})
    )
    @Action
    public Writeup writeup(
            StarPerson person,
            RelevantNewsStories relevantNewsStories,
            Horoscope horoscope,
            Ai ai) {
        var llm = LlmOptions
                .withModel(OpenAiModels.GPT_41_MINI)
                // High temperature for creativity
                .withTemperature(0.9);

        var newsItems = relevantNewsStories.getItems().stream()
                .map(item -&amp;gt; &quot;- &quot; + item.getUrl() + &quot;: &quot; + item.getSummary())
                .collect(Collectors.joining(&quot;\n&quot;));

        var prompt = &quot;&quot;&quot;
                Take the following news stories and write up something
                amusing for the target person.
                
                Begin by summarizing their horoscope in a concise, amusing way, then
                talk about the news. End with a surprising signoff.
                
                %s is an astrology believer with the sign %s.
                Their horoscope for today is:
                    &amp;lt;horoscope&amp;gt;%s&amp;lt;/horoscope&amp;gt;
                Relevant news stories are:
                %s
                
                Format it as Markdown with links.&quot;&quot;&quot;.formatted(
                person.name(), person.sign(), horoscope.summary(), newsItems);
        return ai
                .withLlm(llm)
                .createObject(prompt, Writeup.class);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;Kotlin&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;@Agent(description = &quot;Find news based on a person&#39;s star sign&quot;)
class StarNewsFinder(
    // Services such as Horoscope are injected by Spring
    private val horoscopeService: HoroscopeService,
    // Potentially externalized by Spring
    @param:Value(&quot;\${star-news-finder.story.count:5}&quot;)
    private val storyCount: Int = 5,
) {

    @Action
    fun extractPerson(
        userInput: UserInput,
        ai: Ai
    ): StarPerson =
        // All prompts are typesafe
        ai.withDefaultLlm()
            .createObject(&quot;Create a person from this user input, extracting their name and star sign: $userInput&quot;)

    // This action doesn&#39;t use an LLM
    // Embabel makes it easy to mix LLM use with regular code
    @Action
    fun retrieveHoroscope(starPerson: StarPerson) =
        Horoscope(horoscopeService.dailyHoroscope(starPerson.sign))

    // This action uses tools
    // &quot;toolGroups&quot; specifies tools that are required for this action to run
    @Action(toolGroups = [ToolGroup.WEB])
    fun findNewsStories(
        person: StarPerson,
        horoscope: Horoscope,
        ai: Ai,
    ): RelevantNewsStories =
        ai.withDefaultLlm().createObject(
            &quot;&quot;&quot;
            ${person.name} is an astrology believer with the sign ${person.sign}.
            Their horoscope for today is:
                &amp;lt;horoscope&amp;gt;${horoscope.summary}&amp;lt;/horoscope&amp;gt;
            Given this, use web tools and generate search queries
            to find $storyCount relevant news stories summarize them in a few sentences.
            Include the URL for each story.
            Do not look for another horoscope reading or return results directly about astrology;
            find stories relevant to the reading above.

            For example:
            - If the horoscope says that they may
            want to work on relationships, you could find news stories about
            novel gifts
            - If the horoscope says that they may want to work on their career,
            find news stories about training courses.
        &quot;&quot;&quot;.trimIndent()
        )

    // The @AchievesGoal annotation indicates that completing this action
    // achieves the given goal, so the agent run will be complete
    @AchievesGoal(
        description = &quot;Write an amusing writeup for the target person based on their horoscope and current news stories&quot;,
    )
    @Action
    fun writeup(
        person: StarPerson,
        relevantNewsStories: RelevantNewsStories,
        horoscope: Horoscope,
        ai: Ai,
    ): Writeup =
        ai
            .withLlm(
                LlmOptions
                    .withModel(model)
                    .withTemperature(0.9)
            )
            .createObject(
                &quot;&quot;&quot;
            Take the following news stories and write up something
            amusing for the target person.

            Begin by summarizing their horoscope in a concise, amusing way, then
            talk about the news. End with a surprising signoff.

            ${person.name} is an astrology believer with the sign ${person.sign}.
            Their horoscope for today is:
                &amp;lt;horoscope&amp;gt;${horoscope.summary}&amp;lt;/horoscope&amp;gt;
            Relevant news stories are:
            ${relevantNewsStories.items.joinToString(&quot;\n&quot;) { &quot;- ${it.url}: ${it.summary}&quot; }}

            Format it as Markdown with links.
        &quot;&quot;&quot;.trimIndent()
            )

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;p&gt;The following domain classes ensure type safety:&lt;/p&gt; 
&lt;details open&gt; 
 &lt;summary&gt;Java&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
@JsonClassDescription(&quot;Person with astrology details&quot;)
@JsonDeserialize(as = StarPerson.class)
public record StarPerson(
        String name,
        @JsonPropertyDescription(&quot;Star sign&quot;) String sign
) implements Person {

    @JsonCreator
    public StarPerson(
            @JsonProperty(&quot;name&quot;) String name,
            @JsonProperty(&quot;sign&quot;) String sign
    ) {
        this.name = name;
        this.sign = sign;
    }

    @Override
    public String getName() {
        return name;
    }
}

public record Horoscope(String summary) {
}

@JsonClassDescription(&quot;Writeup relating to a person&#39;s horoscope and relevant news&quot;)
public record Writeup(String text) implements HasContent {

    @JsonCreator
    public Writeup(@JsonProperty(&quot;text&quot;) String text) {
        this.text = text;
    }

    @Override
    public String getContent() {
        return text;
    }
}

&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;Kotlin&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;data class RelevantNewsStories(
    val items: List&amp;lt;NewsStory&amp;gt;
)

data class NewsStory(
    val url: String,

    val summary: String,
)

data class Subject(
    val name: String,
    val sign: String,
)

data class Horoscope(
    val summary: String,
)

data class FunnyWriteup(
    override val text: String,
) : HasContent
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;p&gt;It&#39;s easy to unit test your agents to ensure that they correctly execute logic and pass the correct prompts and hyperparameters to LLMs. For example:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class StarNewsFinderTest {

    @Test
    void writeupPromptMustContainKeyData() {
        HoroscopeService horoscopeService = mock(HoroscopeService.class);
        StarNewsFinder starNewsFinder = new StarNewsFinder(horoscopeService, 5);
        var context = new FakeOperationContext();
        context.expectResponse(new com.embabel.example.horoscope.Writeup(&quot;Gonna be a good day&quot;));

        NewsStory cockatoos = new NewsStory(
                &quot;https://fake.com.au&quot;,
                &quot;Cockatoo behavior&quot;,
                &quot;Cockatoos are eating cabbages&quot;
        );

        NewsStory emus = new NewsStory(
                &quot;https://morefake.com.au&quot;,
                &quot;Emu movements&quot;,
                &quot;Emus are massing&quot;
        );

        StarPerson starPerson = new StarPerson(&quot;Lynda&quot;, &quot;Scorpio&quot;);
        RelevantNewsStories relevantNewsStories = new RelevantNewsStories(Arrays.asList(cockatoos, emus));
        Horoscope horoscope = new Horoscope(&quot;This is a good day for you&quot;);

        starNewsFinder.writeup(starPerson, relevantNewsStories, horoscope, context);

        var prompt = context.getLlmInvocations().getFirst().getPrompt();
        var toolGroups = context.getLlmInvocations().getFirst().getInteraction().getToolGroups();


        assertTrue(prompt.contains(starPerson.getName()));
        assertTrue(prompt.contains(starPerson.sign()));
        assertTrue(prompt.contains(cockatoos.getSummary()));
        assertTrue(prompt.contains(emus.getSummary()));

        assertTrue(toolGroups.isEmpty(), &quot;The LLM should not have been given any tool groups&quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Dog Food Policy&lt;/h2&gt; 
&lt;p&gt;We believe that all aspects of software development and business can and should be greatly accelerated through the use of AI agents. The ultimate decision makers remain human, but they can and should be greatly augmented.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;This project practices extreme dogfooding.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;!-- TODO photo of Duke with kibble --&gt; 
&lt;p&gt;Our key principles:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;We will use AI agents to help every aspect of the project:&lt;/strong&gt; coding, documentation, community management, producing marketing copy etc. Any human performing a task should ask why it cannot be automated, and strive toward maximum automation.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Developers retain ultimate control.&lt;/strong&gt; Developers are responsible for guiding agents toward the solution and iterating as necessary. A developer who commits or merges an agent contribution is responsible for ensuring that it meets the project coding standards, which are independent of the use of agents. For example, code must be human-readable.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;We will favour open source agents built on the Embabel platform,&lt;/strong&gt; and contribute improvements. While commercial agents may be more advanced in some areas, we believe that our platform is the best general solution for automation and by dogfooding we will improve it fastest. By open sourcing agents used on our open source projects, we will maximize benefit to the community.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;We will prioritize agents that help accelerate our progress.&lt;/strong&gt; Per the flight safety advice to fit your own mask before helping others, we will prioritize agents that help us accelerate our own progress. This will not only produce useful examples, but increase overall project velocity.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Developers must carefully read all code they commit and improve generated code if possible.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Coding agents are a special case. While the &lt;code&gt;embabel-agent-code&lt;/code&gt; submodule offers support for project modification that is useful for project bootstrapping, coding agents are the most mature of commercial agents, and their vendors are heavily subsidising their users, making it economically irrational to insist on our own platform.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Getting Started&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Get the bits&lt;/li&gt; 
 &lt;li&gt;Set up your environment&lt;/li&gt; 
 &lt;li&gt;Run the application&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Getting the bits&lt;/h3&gt; 
&lt;p&gt;Choose one of the following:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Clone the repository via &lt;code&gt;git clone https://github.com/embabel/embabel-agent&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Create a new Spring Boot project and add the necessary dependencies (see &quot;Using Embabel Agent Framework in Your Project&quot; below)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Environment variables&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Environment variables are consistent with common usage, rather than Spring AI. For example, we prefer &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; to &lt;code&gt;SPRING_AI_OPENAI_API_KEY&lt;/code&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Required:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;: For the OpenAI API&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Optional:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;: For the Anthropic API. Necessary for the coding agent.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;MINIMAX_API_KEY&lt;/code&gt;: For the &lt;a href=&quot;https://www.minimax.io&quot;&gt;MiniMax&lt;/a&gt; API. Supports MiniMax-M2.7 and MiniMax-M2.7-highspeed models.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;We strongly recommend providing both an OpenAI and Anthropic key, as some examples require both. And it&#39;s important to try to find the best LLM for a given task, rather than automatically choose a familiar provider.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Services&lt;/h3&gt; 
&lt;p&gt;You will need a Docker Desktop version &lt;a href=&quot;https://docs.docker.com/desktop/release-notes/&quot;&gt;&lt;code&gt;&amp;gt;4.43.2&lt;/code&gt;&lt;/a&gt;. Be sure to activate the following MCP tools from the catalog:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Brave Search&lt;/li&gt; 
 &lt;li&gt;Fetch&lt;/li&gt; 
 &lt;li&gt;Puppeteer&lt;/li&gt; 
 &lt;li&gt;Wikipedia&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;You can also set up your own MCP tools using Spring AI conventions. See the &lt;code&gt;application-docker-desktop.yml&lt;/code&gt; file for an example.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;If you&#39;re running Ollama locally, include the &lt;code&gt;embabel ollama starter&lt;/code&gt; and Embabel will automatically connect to your Ollama endpoint and make all models available.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.embabel.agent&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;embabel-agent-starter-ollama&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Running&lt;/h3&gt; 
&lt;p&gt;Create your own agent project with&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;uvx --from git+https://github.com/embabel/project-creator.git project-creator
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Example Agents&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;📚 For examples and tutorials&lt;/strong&gt;, see the &lt;a href=&quot;https://github.com/embabel/embabel-agent-examples&quot;&gt;Embabel Agent Examples Repository&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Clone and run examples
git clone https://github.com/embabel/embabel-agent-examples
cd embabel-agent-examples/scripts/kotlin
./shell.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Shell Commands&lt;/h4&gt; 
&lt;p&gt;Spring Shell is an easy way to interact with the Embabel agent framework, especially during development.&lt;/p&gt; 
&lt;p&gt;Type &lt;code&gt;help&lt;/code&gt; to see available commands. Use &lt;code&gt;execute&lt;/code&gt; or &lt;code&gt;x&lt;/code&gt; to run an agent:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;execute &quot;Lynda is a Scorpio, find news for her&quot; -p -r
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This will look for an agent, choose the star finder agent and run the flow. &lt;code&gt;-p&lt;/code&gt; will log prompts &lt;code&gt;-r&lt;/code&gt; will log LLM responses. Omit these for less verbose logging.&lt;/p&gt; 
&lt;p&gt;Options:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;-p&lt;/code&gt; logs prompts&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-r&lt;/code&gt; logs LLM responses&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Use the &lt;code&gt;chat&lt;/code&gt; command to enter an interactive chat with the agent. It will attempt to run the most appropriate agent for each command.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Spring Shell supports history. Type &lt;code&gt;!!&lt;/code&gt; to repeat the last command. This will survive restarts, so is handy when iterating on an agent.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h4&gt;Further examples&lt;/h4&gt; 
&lt;p&gt;Example commands within the shell:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;# Perplexity style deep research
# Requires both OpenAI and Anthropic keys and Docker Desktop with the MCP extension (or your own web tools)
execute &quot;research the recent australian federal election. what is the position of the greens party?&quot;

# x is a shortcut for execute
x &quot;fact check the following: holden cars are still made in australia; the koel is a bird native only to australia; fidel castro is justin trudeau&#39;s father&quot;

&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Bringing in additional LLMs&lt;/h3&gt; 
&lt;h4&gt;Local models with well-known providers&lt;/h4&gt; 
&lt;p&gt;The Embabel Agent Framework supports local models from:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Ollama: Simply add &lt;code&gt;embabel-agent-starter-ollama&lt;/code&gt; starter to your pom.xml and your local Ollama endpoint will be queries. All local models will be available.&lt;/li&gt; 
 &lt;li&gt;Docker: Add the &lt;code&gt;embabel-agent-starter-dockermodels&lt;/code&gt; starter to your pom.xml and your local Docker endpoint will be queried. All local models will be available.&lt;/li&gt; 
 &lt;li&gt;LMStudio: This uses the openAI compatible client. Just include LMStudio as a dependency and make sure your LMStudio server is running.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Custom LLMs&lt;/h4&gt; 
&lt;p&gt;You can define an LLM for any provider for which a Spring AI &lt;code&gt;ChatModel&lt;/code&gt; is available.&lt;/p&gt; 
&lt;p&gt;Simply define Spring beans of type &lt;code&gt;Llm&lt;/code&gt;. See the &lt;code&gt;OpenAiConfiguration&lt;/code&gt; class as an example.&lt;/p&gt; 
&lt;p&gt;Remember:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Provide the knowledge cutoff date if you know it&lt;/li&gt; 
 &lt;li&gt;Make the configuration class conditional on any required API key.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Roadmap&lt;/h2&gt; 
&lt;p&gt;This project is in its early stages, but we have big plans. The milestones and issues in this repository are a good reference. Our key goals:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Become the natural way to Gen AI-enable Java applications&lt;/strong&gt;, and especially those built on Spring.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Prove the power of the approach&lt;/strong&gt;. Demonstrate that this approach is the best way to build safe, dependable, Gen AI applications. In particular: 
  &lt;ul&gt; 
   &lt;li&gt;Demonstrate the power of extensibility without modification, by adding goals and actions&lt;/li&gt; 
   &lt;li&gt;Demonstrate the potential to become the PaaS for natural language&lt;/li&gt; 
   &lt;li&gt;Demonstrate the potential of agent federation within the GOAP model&lt;/li&gt; 
   &lt;li&gt;Demonstrate budget-aware agents, such as &quot;Research the following topic, spending up to 20c if you are still learning&quot;&lt;/li&gt; 
   &lt;li&gt;Integrate with data stores and demonstrate the power of surfacing existing functionality inside an organization&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Take the model to other platforms&lt;/strong&gt;: The conceptual framework is not JVM specific. Once established, we intend to create TypeScript and Python projects.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;There is a lot to do, and you are awesome. We look forward to your contribution!&lt;/p&gt; 
&lt;h2&gt;Application Design&lt;/h2&gt; 
&lt;h3&gt;Domain objects&lt;/h3&gt; 
&lt;p&gt;Applications center around domain objects. These can be instantiated by LLMs or user code, and manipulated by user code.&lt;/p&gt; 
&lt;p&gt;Use Jackson annotations to help LLMs with descriptions as well as mark fields to ignore. For example:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;@JsonClassDescription(&quot;Person with astrology details&quot;)
data class StarPerson(
    override val name: String,
    @get:JsonPropertyDescription(&quot;Star sign&quot;)
    val sign: String,
) : Person
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See &lt;a href=&quot;https://github.com/victools/jsonschema-generator/tree/main/jsonschema-module-jackson&quot;&gt;Java Json Schema Generation - Module Jackson&lt;/a&gt; for documentation of the library used.&lt;/p&gt; 
&lt;p&gt;Domain objects can have behaviors that are automatically exposed to LLMs when they are in scope. Simply annotate methods with the Spring AI &lt;code&gt;@Tool&lt;/code&gt; annotation.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;When exposing &lt;code&gt;@Tool&lt;/code&gt; methods on domain objects, be sure that the tool is safe to invoke. Even the best LLMs can get trigger-happy. For example, be careful about methods that can mutate or delete data. This is likely better modeled via an explicit call to a non-tool method on the same domain class, in a code action.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Using Embabel as an MCP server&lt;/h2&gt; 
&lt;p&gt;You can use the Embabel agent platform as an MCP server from a UI like Claude Desktop. The Embabel MCP server is available over SSE.&lt;/p&gt; 
&lt;p&gt;Configure Claude Desktop as follows in your &lt;code&gt;claude_desktop_config.yml&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;embabel&quot;: {
      &quot;command&quot;: &quot;npx&quot;,
      &quot;args&quot;: [
        &quot;-y&quot;,
        &quot;mcp-remote&quot;,
        &quot;http://localhost:8080/sse&quot;
      ]
    }
  }
}

&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See &lt;a href=&quot;https://modelcontextprotocol.io/quickstart/user&quot;&gt;MCP Quickstart for Claude Desktop Users&lt;/a&gt; for how to configure Claude Desktop.&lt;/p&gt; 
&lt;p&gt;The &lt;a href=&quot;https://github.com/modelcontextprotocol/inspector&quot;&gt;MCP Inspector&lt;/a&gt; is a helpful tool for interacting with your Embabel SSE server, manually invoking tools and checking the exposed prompts and resources.&lt;/p&gt; 
&lt;p&gt;Start the MCP Inspector with:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx @modelcontextprotocol/inspector
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Consuming MCP Servers&lt;/h2&gt; 
&lt;p&gt;The Embabel Agent Framework provides built-in support for consuming Model Context Protocol (MCP) servers, allowing you to extend your applications with powerful AI capabilities through standardized interfaces.&lt;/p&gt; 
&lt;h3&gt;What is MCP?&lt;/h3&gt; 
&lt;p&gt;Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context and extra functionality to large language models. Introduced by Anthropic, MCP has emerged as the de facto standard for connecting AI agents to tools, functioning as a client-server protocol where:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Clients&lt;/strong&gt; (like Embabel Agent) send requests to servers&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Servers&lt;/strong&gt; process those requests to deliver necessary context to the AI model&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;MCP simplifies integration between AI applications and external tools, transforming an &quot;M×N problem&quot; into an &quot;M+N problem&quot; through standardization - similar to what USB did for hardware peripherals.&lt;/p&gt; 
&lt;h3&gt;Configuring MCP in Embabel Agent&lt;/h3&gt; 
&lt;p&gt;To configure MCP servers in your Embabel Agent application, add the following to your &lt;code&gt;application.yml&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;spring:
  ai:
    mcp:
      client:
        enabled: true
        name: embabel
        version: 1.0.0
        request-timeout: 30s
        type: SYNC
        stdio:
          connections:
            docker-mcp:
              command: docker
              args:
                - run
                - -i
                - --rm
                - alpine/socat
                - STDIO
                - TCP:host.docker.internal:8811
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This configuration sets up an MCP client that connects to a Docker-based MCP server. The connection uses STDIO transport through Docker&#39;s socat utility to connect to a TCP endpoint.&lt;/p&gt; 
&lt;h3&gt;Docker Desktop MCP Integration&lt;/h3&gt; 
&lt;p&gt;Docker has embraced MCP with their Docker MCP Catalog and Toolkit, which provides:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Centralized Discovery&lt;/strong&gt; - A trusted hub for discovering MCP tools integrated into Docker Hub&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Containerized Deployment&lt;/strong&gt; - Run MCP servers as containers without complex setup&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Secure Credential Management&lt;/strong&gt; - Centralized, encrypted credential handling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Built-in Security&lt;/strong&gt; - Sandbox isolation and permissions management&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;The Docker MCP ecosystem includes over 100 verified tools from partners like Stripe, Elastic, Neo4j, and more, all accessible through Docker&#39;s infrastructure.&lt;/p&gt; 
&lt;h3&gt;Learn More&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://docs.docker.com/desktop/features/gordon/mcp/&quot;&gt;Docker MCP Documentation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/docker/mcp-servers&quot;&gt;Docker MCP Servers Repository&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.docker.com/blog/introducing-docker-mcp-catalog-and-toolkit/&quot;&gt;Introducing Docker MCP Catalog and Toolkit&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.philschmid.de/mcp-introduction&quot;&gt;MCP Introduction and Overview&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;A2A&lt;/h2&gt; 
&lt;p&gt;Embabel integrates with the &lt;a href=&quot;https://github.com/google-a2a/A2A&quot;&gt;A2A&lt;/a&gt; protocol, allowing you to connect to other A2A-enabled agents and services.&lt;/p&gt; 
&lt;p&gt;Enable the &lt;code&gt;a2a&lt;/code&gt; Spring profile to start the A2A server.&lt;/p&gt; 
&lt;p&gt;You&#39;ll need the following environment variable:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;GOOGLE_STUDIO_API_KEY&lt;/code&gt;: Your Google Studio API key, which is used for Gemini.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Start the Google A2A web interface using the &lt;code&gt;a2a&lt;/code&gt; Docker profile:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose --profile a2a up
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Go to the web interface running within the container at &lt;code&gt;http://localhost:12000/&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Connect to your agent at &lt;code&gt;host.docker.internal:8080/a2a&lt;/code&gt;. Note that &lt;code&gt;localhost:8080/a2a&lt;/code&gt; won&#39;t work as the server cannot access it when running in a Docker container.&lt;/p&gt; 
&lt;h2&gt;Running Tests&lt;/h2&gt; 
&lt;h3&gt;Unit tests&lt;/h3&gt; 
&lt;p&gt;Run the unit tests via Maven. This will not require an internet connection or any external services.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mvn test
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Integration tests&lt;/h3&gt; 
&lt;p&gt;Integration tests (&lt;code&gt;*IT&lt;/code&gt;) hit real provider APIs and are excluded from the default &lt;code&gt;mvn test&lt;/code&gt; run. To run them, ensure the following environment variables are set:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;DEEPSEEK_API_KEY&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;MISTRAL_API_KEY&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Then run:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mvn -Dtest=&#39;*IT,!LLMOllama*IT&#39; -Dsurefire.failIfNoSpecifiedTests=false test
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This runs all integration tests except Ollama (which requires a local Ollama server). To run a specific module&#39;s integration tests, add &lt;code&gt;-pl&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mvn -Dtest=&#39;*IT,!LLMOllama*IT&#39; -Dsurefire.failIfNoSpecifiedTests=false test -pl embabel-agent-openai
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Spring profiles&lt;/h2&gt; 
&lt;p&gt;Spring profiles are used to configure the application for different environments and behaviors.&lt;/p&gt; 
&lt;p&gt;Model profiles:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;docker-desktop&lt;/code&gt;: Talking to Docker Desktop with the MCP extension. &lt;strong&gt;This is recommended for the best experience, with Docker-provided web tools.&lt;/strong&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Logging profiles:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;severance&lt;/code&gt;: &lt;a href=&quot;https://www.youtube.com/watch?v=xEQP4VVuyrY&amp;amp;ab_channel=AppleTV&quot;&gt;Severance&lt;/a&gt; specific logging. Praise Kier!&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;starwars&lt;/code&gt;: Star Wars specific logging. Feel the force&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;colossus&lt;/code&gt;: Colossus specific logging. The Forbin Project.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Testing&lt;/h2&gt; 
&lt;p&gt;A key goal of this framework is ease of testing. Just as Spring eased testing of early enterprise Java applications, this framework facilitates testing of AI applications.&lt;/p&gt; 
&lt;p&gt;Types of testing:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Unit tests: All agents are unit testable, like any Spring-managed beans. Construct them with mock objects; call individual action methods. The testing library facilitates testing prompts.&lt;/li&gt; 
 &lt;li&gt;Integration tests: tbd&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Logging&lt;/h2&gt; 
&lt;p&gt;All logging in this project is either debug logging in the relevant class itself, or results from the stream of events of type &lt;code&gt;AgentEvent&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Edit &lt;code&gt;application.yml&lt;/code&gt; if you want to see debug logging from the relevant classes and packages.&lt;/p&gt; 
&lt;p&gt;Available logging experiences:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;severance&lt;/code&gt;: Severance logging. Praise Kier&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;starwars&lt;/code&gt;: Star Wars logging. Feel the force. The default as it&#39;s understood throughout the galaxy.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;colossus&lt;/code&gt;: Colossus logging. The Forbin Project.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;montypython&lt;/code&gt;: Monty Python logging. No one expects it.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;hh&lt;/code&gt;: Hitchhiker&#39;s Guide to the Galaxy logging. The answer is 42.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If none of these profiles is chosen, Embabel will use vanilla logging. This makes me sad.&lt;/p&gt; 
&lt;h2&gt;Adding Embabel Agent Framework to Your Project&lt;/h2&gt; 
&lt;h3&gt;Maven Central Availability&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Since version 0.2.0&lt;/strong&gt;, Embabel Agent Framework is available directly on Maven Central, simplifying dependency management. You no longer need to configure custom repositories for stable releases.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Maven&lt;/h3&gt; 
&lt;h4&gt;For version 0.2.0 and above (Recommended)&lt;/h4&gt; 
&lt;p&gt;Simply add the Embabel Spring Boot starter dependency to your &lt;code&gt;pom.xml&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.embabel.agent&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;embabel-agent-starter&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${embabel-agent.version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;No additional repository configuration is needed! Maven Central is configured by default.&lt;/p&gt; 
&lt;h4&gt;For versions prior to 0.2.0 or for SNAPSHOT versions&lt;/h4&gt; 
&lt;p&gt;You need to add the Embabel repositories to your &lt;code&gt;pom.xml&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;
&amp;lt;repositories&amp;gt;
    &amp;lt;repository&amp;gt;
        &amp;lt;id&amp;gt;embabel-releases&amp;lt;/id&amp;gt;
        &amp;lt;url&amp;gt;https://repo.embabel.com/artifactory/libs-release&amp;lt;/url&amp;gt;
        &amp;lt;releases&amp;gt;
            &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
        &amp;lt;/releases&amp;gt;
        &amp;lt;snapshots&amp;gt;
            &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;
        &amp;lt;/snapshots&amp;gt;
    &amp;lt;/repository&amp;gt;
    &amp;lt;repository&amp;gt;
        &amp;lt;id&amp;gt;embabel-snapshots&amp;lt;/id&amp;gt;
        &amp;lt;url&amp;gt;https://repo.embabel.com/artifactory/libs-snapshot&amp;lt;/url&amp;gt;
        &amp;lt;releases&amp;gt;
            &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;
        &amp;lt;/releases&amp;gt;
        &amp;lt;snapshots&amp;gt;
            &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
        &amp;lt;/snapshots&amp;gt;
    &amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then add the dependency:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.embabel.agent&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;embabel-agent-starter&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${embabel-agent.version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Gradle (Kotlin DSL)&lt;/h3&gt; 
&lt;h4&gt;For version 0.2.0 and above (Recommended)&lt;/h4&gt; 
&lt;p&gt;Add the required repositories to your &lt;code&gt;build.gradle.kts&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;repositories {
    mavenCentral()
    maven {
        name = &quot;Spring Milestones&quot;
        url = uri(&quot;https://repo.spring.io/milestone&quot;)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Add the Embabel Agent starter:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;dependencies {
    implementation(&quot;com.embabel.agent:embabel-agent-starter:${embabelAgentVersion}&quot;)
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;For versions prior to 0.2.0 or for SNAPSHOT versions&lt;/h4&gt; 
&lt;p&gt;Add all required repositories to your &lt;code&gt;build.gradle.kts&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;repositories {
    mavenCentral()
    maven {
        name = &quot;embabel-releases&quot;
        url = uri(&quot;https://repo.embabel.com/artifactory/libs-release&quot;)
        mavenContent {
            releasesOnly()
        }
    }
    maven {
        name = &quot;embabel-snapshots&quot;
        url = uri(&quot;https://repo.embabel.com/artifactory/libs-snapshot&quot;)
        mavenContent {
            snapshotsOnly()
        }
    }
    maven {
        name = &quot;Spring Milestones&quot;
        url = uri(&quot;https://repo.spring.io/milestone&quot;)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Add the Embabel Agent starter:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;dependencies {
    implementation(&quot;com.embabel.agent:embabel-agent-starter:${embabelAgentVersion}&quot;)
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Gradle (Groovy DSL)&lt;/h3&gt; 
&lt;h4&gt;For version 0.2.0 and above (Recommended)&lt;/h4&gt; 
&lt;p&gt;Add the required repositories to your &lt;code&gt;build.gradle&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-groovy&quot;&gt;repositories {
    mavenCentral()
    maven {
        name = &#39;Spring Milestones&#39;
        url = &#39;https://repo.spring.io/milestone&#39;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Add the Embabel Agent starter:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-groovy&quot;&gt;dependencies {
    implementation &quot;com.embabel.agent:embabel-agent-starter:${embabelAgentVersion}&quot;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;For versions prior to 0.2.0 or for SNAPSHOT versions&lt;/h4&gt; 
&lt;p&gt;Add all required repositories to your &lt;code&gt;build.gradle&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-groovy&quot;&gt;repositories {
    mavenCentral()
    maven {
        name = &#39;embabel-releases&#39;
        url = &#39;https://repo.embabel.com/artifactory/libs-release&#39;
        mavenContent {
            releasesOnly()
        }
    }
    maven {
        name = &#39;embabel-snapshots&#39;
        url = &#39;https://repo.embabel.com/artifactory/libs-snapshot&#39;
        mavenContent {
            snapshotsOnly()
        }
    }
    maven {
        name = &#39;Spring Milestones&#39;
        url = &#39;https://repo.spring.io/milestone&#39;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Add the Embabel Agent starter:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-groovy&quot;&gt;dependencies {
    implementation &#39;com.embabel.agent:embabel-agent-starter:${embabelAgentVersion}&#39;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Important Notes&lt;/h3&gt; 
&lt;h4&gt;Spring Milestones Repository&lt;/h4&gt; 
&lt;p&gt;The Spring Milestones repository is required because the Embabel BOM (&lt;code&gt;embabel-agent-dependencies&lt;/code&gt;) has transitive dependencies on experimental Spring components, specifically the &lt;code&gt;mcp-bom&lt;/code&gt;. This BOM is not available on Maven Central and is only published to the Spring milestone repository.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Note for Gradle users:&lt;/strong&gt; Unlike Maven, Gradle does not inherit repository configurations declared in parent POMs or BOMs. Therefore, it is necessary to explicitly declare the Spring milestone repository in your repositories block to ensure proper resolution of all transitive dependencies.&lt;/p&gt; 
&lt;h4&gt;Repository Types&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Maven Central&lt;/strong&gt; (since v0.2.0): For stable releases 0.2.0 and above&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Embabel Releases Repository&lt;/strong&gt;: For stable releases prior to 0.2.0&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Embabel Snapshots Repository&lt;/strong&gt;: For development/snapshot versions (e.g., &lt;code&gt;0.3.0-SNAPSHOT&lt;/code&gt;)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Quick Start Examples&lt;/h3&gt; 
&lt;h4&gt;Maven with latest stable version&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.embabel.agent&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;embabel-agent-starter&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;0.3.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Gradle Kotlin DSL with latest stable version&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;implementation(&quot;com.embabel.agent:embabel-agent-starter:0.3.0&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Gradle Groovy DSL with latest stable version&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-groovy&quot;&gt;implementation &#39;com.embabel.agent:embabel-agent-starter:0.3.0&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Getting Started with Observability&lt;/h2&gt; 
&lt;p&gt;Add full tracing and metrics to your Embabel agents with zero code changes.&lt;/p&gt; 
&lt;h3&gt;1. Add the dependency&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.embabel.agent&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;embabel-agent-starter-observability&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${embabel-agent.version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;2. Add an exporter&lt;/h3&gt; 
&lt;p&gt;Pick &lt;strong&gt;one&lt;/strong&gt; (or combine multiple):&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Zipkin&lt;/strong&gt; (simplest — no account needed):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;io.opentelemetry&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;opentelemetry-exporter-zipkin&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Langfuse&lt;/strong&gt; (LLM-focused observability):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.quantpulsar&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;opentelemetry-exporter-langfuse&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;0.4.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;3. Configure&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;# Enable observability
embabel:
  observability:
    enabled: true
    service-name: my-agent-app

# Enable Spring Boot tracing
management:
  tracing:
    enabled: true
    sampling:
      probability: 1.0

  # Zipkin exporter
  zipkin:
    tracing:
      endpoint: http://localhost:9411/api/v2/spans
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To use Langfuse instead of (or alongside) Zipkin:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;management:
  langfuse:
    enabled: true
    endpoint: https://cloud.langfuse.com/api/public/otel  # or your self-hosted URL
    public-key: pk-lf-...
    secret-key: sk-lf-...
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;4. Start Zipkin and run&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run -d -p 9411:9411 openzipkin/zipkin
./mvnw spring-boot:run
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Open &lt;a href=&quot;http://localhost:9411&quot;&gt;http://localhost:9411&lt;/a&gt; — run an agent and you will see traces like:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Agent: CustomerServiceAgent
├── Action: AnalyzeRequest
│   └── ChatModel: gpt-4 (Spring AI)
│       └── tool:searchKnowledgeBase
├── Action: GenerateResponse
│   └── ChatModel: gpt-4 (Spring AI)
└── status: completed [duration=2340ms]
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;With Langfuse, you get a rich LLM-focused view of your agent traces:&lt;/p&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/embabel/embabel-agent/main/embabel-agent-observability/docs/langfuse.png&quot; alt=&quot;Langfuse Tracing&quot; width=&quot;800&quot; /&gt; 
&lt;h3&gt;What gets traced automatically&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Agent lifecycle (creation, execution, completion, failures)&lt;/li&gt; 
 &lt;li&gt;Every action as a child span&lt;/li&gt; 
 &lt;li&gt;LLM calls with token usage (via Spring AI)&lt;/li&gt; 
 &lt;li&gt;Tool invocations with input/output&lt;/li&gt; 
 &lt;li&gt;Planning and replanning iterations&lt;/li&gt; 
 &lt;li&gt;State transitions and lifecycle states&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Track custom operations with &lt;code&gt;@Tracked&lt;/code&gt;&lt;/h3&gt; 
&lt;p&gt;Use the &lt;code&gt;@Tracked&lt;/code&gt; annotation to add observability spans to your own methods — inputs, outputs, duration, and errors are captured automatically:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Tracked(&quot;enrichCustomer&quot;)
public Customer enrich(Customer input) {
    // Your logic here
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You can specify a type and description for richer traces:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Tracked(value = &quot;callPaymentApi&quot;, type = TrackType.EXTERNAL_CALL, description = &quot;Payment gateway call&quot;)
public PaymentResult processPayment(Order order) {
    // ...
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;When called within an agent execution, &lt;code&gt;@Tracked&lt;/code&gt; spans are automatically nested under the current action:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Agent: CustomerServiceAgent
├── Action: ProcessOrder
│   ├── @Tracked: enrichCustomer (PROCESSING)
│   ├── ChatModel: gpt-4
│   └── @Tracked: callPaymentApi (EXTERNAL_CALL)
└── status: completed
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For the full configuration reference, MDC log correlation, and advanced options, see the &lt;a href=&quot;https://raw.githubusercontent.com/embabel/embabel-agent/main/embabel-agent-observability/README.md&quot;&gt;Observability Module Documentation&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;We welcome contributions to the Embabel Agent Framework.&lt;/p&gt; 
&lt;p&gt;Look at the &lt;a href=&quot;https://raw.githubusercontent.com/embabel/embabel-agent/main/embabel-agent-api/.embabel/coding-style.md&quot;&gt;coding style guide&lt;/a&gt; for style guidelines. This file also informs coding agent behavior.&lt;/p&gt; 
&lt;h2&gt;Miscellaneous&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;em&gt;Why the name Embabel?&lt;/em&gt; The &quot;babel&quot; part is ultimately inspired by the story of the Tower of Babel, perhaps via Douglas Adams&#39; &lt;a href=&quot;https://www.youtube.com/watch?v=iuumnjJWFO4&amp;amp;ab_channel=BBCStudios&quot;&gt;babelfish&lt;/a&gt;. Per @lasuac: &lt;em&gt;While Adams&#39; fish in the ear enabled universal translation between species, Embabel aims at translating human intent to JVM code, AI models, and enterprise systems.&lt;/em&gt; &quot;embabel&quot; also sounds like &quot;enable.&quot;&lt;/li&gt; 
 &lt;li&gt;Milestone names are Australian animals. Mythical animals such as &quot;bunyip&quot; and &quot;yowie&quot; are used for futures that may or not be implemented.&lt;/li&gt; 
 &lt;li&gt;README badges come from &lt;a href=&quot;https://github.com/Ileriayo/markdown-badges&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://home.aveek.io/GitHub-Profile-Badges/&quot;&gt;here&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Don&#39;t forget to join &lt;a href=&quot;https://discord.gg/t6bjkyj93q&quot;&gt;Discord&lt;/a&gt; to collaborate with the Embabel community. It is a good place to receive support, showcase your work, discuss ideas and connect with like-minded people.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Star history&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://star-history.com/#embabel/embabel-agent&amp;amp;Date&quot;&gt;&lt;img src=&quot;https://api.star-history.com/svg?repos=embabel/embabel-agent&amp;amp;type=Date&quot; alt=&quot;Star History Chart&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Contributors&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/embabel/embabel-agent/graphs/contributors&quot;&gt;&lt;img src=&quot;https://contrib.rocks/image?repo=embabel/embabel-agent&quot; alt=&quot;Embabel contributors&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;(c) Embabel Software Inc 2024-2025.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/12ca7dd7e662080a1a4e6b9cf535ded85ebcabf95649e2719450bf8a9f28dfc8/embabel/embabel-agent" medium="image" />
      
    </item>
    
    <item>
      <title>JunkFood02/Seal</title>
      <link>https://github.com/JunkFood02/Seal</link>
      <description>&lt;p&gt;🦭 Video/Audio Downloader for Android, based on yt-dlp&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;img width=&quot;160&quot; src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/icon.png&quot; height=&quot;160&quot; align=&quot;center&quot; /&gt; 
 &lt;h1&gt;Seal&lt;/h1&gt; 
 &lt;h3&gt;Video/Audio Downloader for Android&lt;/h3&gt; 
 &lt;p&gt;English &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-zh_Hans.md&quot;&gt;简体中文&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-zh_Hant.md&quot;&gt;繁體中文&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-ar.md&quot;&gt;العربية&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-pt.md&quot;&gt;Portuguese&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-ua.md&quot;&gt;Українська&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-th.md&quot;&gt;ภาษาไทย&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-fa.md&quot;&gt;فارسی&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-it.md&quot;&gt;Italiano&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-az.md&quot;&gt;Azərbaycanca&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-ru.md&quot;&gt;Русский&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-sr.md&quot;&gt;Српски&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-ja.md&quot;&gt;日本語&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-id.md&quot;&gt;Indonesia&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-hi.md&quot;&gt;हिंदी&lt;/a&gt; &amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/translations/README-bn.md&quot;&gt;বাংলা&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://f-droid.org/en/packages/com.junkfood.seal&quot;&gt;&lt;img src=&quot;https://img.shields.io/f-droid/v/com.junkfood.seal?color=b4eb12&amp;amp;label=F-Droid&amp;amp;logo=fdroid&amp;amp;logoColor=1f78d2&quot; alt=&quot;F-Droid&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/JunkFood02/Seal/releases/latest/&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/JunkFood02/Seal?color=black&amp;amp;label=Stable&amp;amp;logo=github&quot; alt=&quot;GitHub release (latest by date)&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/JunkFood02/Seal/releases/&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/JunkFood02/Seal?include_prereleases&amp;amp;label=Preview&amp;amp;logo=Github&quot; alt=&quot;GitHub release (latest by date including pre-releases)&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/CHANGELOG.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Changelog-lightgray?style=flat&amp;amp;color=gray&amp;amp;logo=keep-a-changelog&quot; alt=&quot;Keep a Changelog&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/JunkFood02/Seal/releases/&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/JunkFood02/Seal/total?label=Downloads&amp;amp;logo=github&quot; alt=&quot;GitHub all releases&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/JunkFood02/Seal/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/JunkFood02/Seal?style=flat&amp;amp;logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIC05NjAgOTYwIDk2MCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0zNTQtMjQ3IDEyNi03NiAxMjYgNzctMzMtMTQ0IDExMS05Ni0xNDYtMTMtNTgtMTM2LTU4IDEzNS0xNDYgMTMgMTExIDk3LTMzIDE0M1pNMjMzLTgwbDY1LTI4MUw4MC01NTBsMjg4LTI1IDExMi0yNjUgMTEyIDI2NSAyODggMjUtMjE4IDE4OSA2NSAyODEtMjQ3LTE0OUwyMzMtODBabTI0Ny0zNTBaIiBzdHlsZT0iZmlsbDogcmdiKDI0NSwgMjI3LCA2Nik7Ii8%2BCjwvc3ZnPg%3D%3D&amp;amp;color=%23f8e444&quot; alt=&quot;GitHub Repo stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp/raw/master/supportedsites.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Sites-9cf?style=flat&amp;amp;logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiNGRkZGRkYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+CiAgPHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6bTYuOTMgNmgtMi45NWMtLjMyLTEuMjUtLjc4LTIuNDUtMS4zOC0zLjU2IDEuODQuNjMgMy4zNyAxLjkxIDQuMzMgMy41NnpNMTIgNC4wNGMuODMgMS4yIDEuNDggMi41MyAxLjkxIDMuOTZoLTMuODJjLjQzLTEuNDMgMS4wOC0yLjc2IDEuOTEtMy45NnpNNC4yNiAxNEM0LjEgMTMuMzYgNCAxMi42OSA0IDEycy4xLTEuMzYuMjYtMmgzLjM4Yy0uMDguNjYtLjE0IDEuMzItLjE0IDJzLjA2IDEuMzQuMTQgMkg0LjI2em0uODIgMmgyLjk1Yy4zMiAxLjI1Ljc4IDIuNDUgMS4zOCAzLjU2LTEuODQtLjYzLTMuMzctMS45LTQuMzMtMy41NnptMi45NS04SDUuMDhjLjk2LTEuNjYgMi40OS0yLjkzIDQuMzMtMy41NkM4LjgxIDUuNTUgOC4zNSA2Ljc1IDguMDMgOHpNMTIgMTkuOTZjLS44My0xLjItMS40OC0yLjUzLTEuOTEtMy45NmgzLjgyYy0uNDMgMS40My0xLjA4IDIuNzYtMS45MSAzLjk2ek0xNC4zNCAxNEg5LjY2Yy0uMDktLjY2LS4xNi0xLjMyLS4xNi0ycy4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAycy0uMDcgMS4zNC0uMTYgMnptLjI1IDUuNTZjLjYtMS4xMSAxLjA2LTIuMzEgMS4zOC0zLjU2aDIuOTVjLS45NiAxLjY1LTIuNDkgMi45My00LjMzIDMuNTZ6TTE2LjM2IDE0Yy4wOC0uNjYuMTQtMS4zMi4xNC0ycy0uMDYtMS4zNC0uMTQtMmgzLjM4Yy4xNi42NC4yNiAxLjMxLjI2IDJzLS4xIDEuMzYtLjI2IDJoLTMuMzh6IiBzdHlsZT0iZmlsbDogcmdiKDE2MiwgMTk4LCAyMzQpOyIvPgo8L3N2Zz4=&amp;amp;label=Supported&quot; alt=&quot;Supported-Sites&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://t.me/seal_app&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Telegram-Seal-blue?style=flat&amp;amp;logo=telegram&quot; alt=&quot;Telegram Channel&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://matrix.to/#/#seal-space:matrix.org&quot;&gt;&lt;img src=&quot;https://img.shields.io/matrix/seal-space%3Amatrix.org?server_fqdn=matrix.org&amp;amp;style=flat&amp;amp;logo=element&amp;amp;label=Matrix&amp;amp;color=%230DBD8B&quot; alt=&quot;Matrix&quot; /&gt; &lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;📱 Screenshots&lt;/h2&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;div&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/6.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/7.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/8.jpg&quot; width=&quot;30%&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/9.jpg&quot; width=&quot;30%&quot; /&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;br /&gt; 
&lt;h2&gt;📖 Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;Download videos and audio files from video platforms supported by &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt; (formerly youtube-dl).&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Embed metadata and video thumbnail into extracted audio files supported by &lt;a href=&quot;https://github.com/quodlibet/mutagen&quot;&gt;mutagen&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Download all videos in the playlist with one click.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Use embedded &lt;a href=&quot;https://github.com/aria2/aria2&quot;&gt;aria2c&lt;/a&gt; as external downloader for all your downloads.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Embed subtitles into the downloaded videos.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Execute custom yt-dlp commands with templates.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Manage in-app downloads and custom command templates.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Easy to use and user-friendly.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://m3.material.io/&quot;&gt;Material Design 3&lt;/a&gt; style UI, with dynamic color theme.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;MAD: UI and logic written with pure Kotlin. Single activity, no fragments, only composable destinations.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;⬇️ Download&lt;/h2&gt; 
&lt;p&gt;For most devices, it is recommended to install the &lt;strong&gt;arm64-v8a&lt;/strong&gt; version of the apks&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;Download the latest stable version from &lt;a href=&quot;https://github.com/JunkFood02/Seal/releases/latest&quot;&gt;GitHub releases&lt;/a&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Install the &lt;a href=&quot;https://github.com/JunkFood02/Seal/releases/&quot;&gt;pre-release&lt;/a&gt; versions to help us test out new features &amp;amp; changes&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Stable releases are also available on &lt;a href=&quot;https://f-droid.org/packages/com.junkfood.seal/&quot;&gt;F-Droid&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;!-- [&lt;img src=&quot;https://fdroid.gitlab.io/artwork/badge/get-it-on.png&quot;
     alt=&quot;Get it on F-Droid&quot;
     height=&quot;70&quot;&gt;](https://f-droid.org/packages/com.junkfood.seal/) --&gt; 
&lt;h2&gt;💬 Contact&lt;/h2&gt; 
&lt;p&gt;Join our &lt;a href=&quot;https://t.me/seal_app&quot;&gt;Telegram Channel&lt;/a&gt; or &lt;a href=&quot;https://matrix.to/#/#seal-space:matrix.org&quot;&gt;Matrix Space&lt;/a&gt; for discussion, announcements, and releases!&lt;/p&gt; 
&lt;h2&gt;💖 Sponsors&lt;/h2&gt; 
&lt;p&gt;
 &lt;!-- sponsors --&gt;
 &lt;!-- sponsors --&gt;&lt;/p&gt; 
&lt;p&gt;Seal will be always free and open source for everyone. If you like it, please consider &lt;a href=&quot;https://github.com/sponsors/JunkFood02&quot;&gt;sponsoring me&lt;/a&gt;!&lt;/p&gt; 
&lt;h2&gt;🤝 Contributing&lt;/h2&gt; 
&lt;p&gt;Contributions are welcome!&lt;/p&gt; 
&lt;p&gt;You can help translate Seal on &lt;a href=&quot;https://hosted.weblate.org/projects/seal/&quot;&gt;Hosted Weblate&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://hosted.weblate.org/engage/seal/&quot;&gt;&lt;img src=&quot;https://hosted.weblate.org/widgets/seal/-/strings/multi-auto.svg?sanitize=true&quot; alt=&quot;Translate status&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info 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;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;&lt;/p&gt; 
 &lt;p&gt;For submitting bug reports, feature requests, questions, or any other ideas to improve, please read &lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for instructions and guidelines first.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;⭐️ Star History&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://star-history.com/#JunkFood02/Seal&amp;amp;Timeline&quot;&gt;&lt;img src=&quot;https://api.star-history.com/svg?repos=JunkFood02/Seal&amp;amp;type=Timeline&quot; alt=&quot;Star History Chart&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;🧱 Credits&lt;/h2&gt; 
&lt;p&gt;Seal is a simple GUI of &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt;, based on &lt;a href=&quot;https://github.com/yausername/youtubedl-android&quot;&gt;youtubedl-android&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Some of the UI designs and codes are borrowed from &lt;a href=&quot;https://github.com/Ashinch/ReadYou&quot;&gt;Read You&lt;/a&gt; and &lt;a href=&quot;https://github.com/Kyant0/MusicYou&quot;&gt;Music You&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/yausername/dvd&quot;&gt;dvd&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/material-foundation/material-color-utilities&quot;&gt;Material color utilities&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/Kyant0/Monet&quot;&gt;Monet&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;📃 License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/JunkFood02/Seal/raw/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/license/JunkFood02/Seal?style=for-the-badge&quot; alt=&quot;GitHub&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert 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;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;&lt;/p&gt; 
 &lt;p&gt;Except for the source code licensed under the GPLv3 license, all other parties are prohibited from using Seal&#39;s name as a downloader app, and the same is true for Seal&#39;s derivatives. Derivatives include but are not limited to forks and unofficial builds.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div align=&quot;right&quot;&gt; 
 &lt;table&gt;
  &lt;tbody&gt;
   &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;https://raw.githubusercontent.com/JunkFood02/Seal/main/#start-of-content&quot;&gt;👆 Scroll to top&lt;/a&gt; &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/tbody&gt;
 &lt;/table&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/f4edb13df7a75099cf6362d55041b2391fd07f038d2c8ca1e15091935eac3643/JunkFood02/Seal" medium="image" />
      
    </item>
    
    <item>
      <title>RikkaApps/Shizuku</title>
      <link>https://github.com/RikkaApps/Shizuku</link>
      <description>&lt;p&gt;Using system APIs directly with adb/root privileges from normal apps through a Java process started with app_process.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Shizuku&lt;/h1&gt; 
&lt;h2&gt;Background&lt;/h2&gt; 
&lt;p&gt;When developing apps that requires root, the most common method is to run some commands in the su shell. For example, there is an app that uses the &lt;code&gt;pm enable/disable&lt;/code&gt; command to enable/disable components.&lt;/p&gt; 
&lt;p&gt;This method has very big disadvantages:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Extremely slow&lt;/strong&gt; (Multiple process creation)&lt;/li&gt; 
 &lt;li&gt;Needs to process texts (&lt;strong&gt;Super unreliable&lt;/strong&gt;)&lt;/li&gt; 
 &lt;li&gt;The possibility is limited to available commands&lt;/li&gt; 
 &lt;li&gt;Even if ADB has sufficient permissions, the app requires root privileges to run&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Shizuku uses a completely different way. See detailed description below.&lt;/p&gt; 
&lt;h2&gt;User guide &amp;amp; Download&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://shizuku.rikka.app/&quot;&gt;https://shizuku.rikka.app/&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;How does Shizuku work?&lt;/h2&gt; 
&lt;p&gt;First, we need to talk about how app use system APIs. For example, if the app wants to get installed apps, we all know we should use &lt;code&gt;PackageManager#getInstalledPackages()&lt;/code&gt;. This is actually an interprocess communication (IPC) process of the app process and system server process, just the Android framework did the inner works for us.&lt;/p&gt; 
&lt;p&gt;Android uses &lt;code&gt;binder&lt;/code&gt; to do this type of IPC. &lt;code&gt;Binder&lt;/code&gt; allows the server-side to learn the uid and pid of the client-side, so that the system server can check if the app has the permission to do the operation.&lt;/p&gt; 
&lt;p&gt;Usually, if there is a &quot;manager&quot; (e.g., &lt;code&gt;PackageManager&lt;/code&gt;) for apps to use, there should be a &quot;service&quot; (e.g., &lt;code&gt;PackageManagerService&lt;/code&gt;) in the system server process. We can simply think if the app holds the &lt;code&gt;binder&lt;/code&gt; of the &quot;service&quot;, it can communicate with the &quot;service&quot;. The app process will receive binders of system services on start.&lt;/p&gt; 
&lt;p&gt;Shizuku guides users to run a process, Shizuku server, with root or ADB first. When the app starts, the &lt;code&gt;binder&lt;/code&gt; to Shizuku server will also be sent to the app.&lt;/p&gt; 
&lt;p&gt;The most important feature Shizuku provides is something like be a middle man to receive requests from the app, sent them to the system server, and send back the results. You can see the &lt;code&gt;transactRemote&lt;/code&gt; method in &lt;code&gt;rikka.shizuku.server.ShizukuService&lt;/code&gt; class, and &lt;code&gt;moe.shizuku.api.ShizukuBinderWrapper&lt;/code&gt; class for the detail.&lt;/p&gt; 
&lt;p&gt;So, we reached our goal, to use system APIs with higher permission. And to the app, it is almost identical to the use of system APIs directly.&lt;/p&gt; 
&lt;h2&gt;Developer guide&lt;/h2&gt; 
&lt;h3&gt;API &amp;amp; sample&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/RikkaApps/Shizuku-API&quot;&gt;https://github.com/RikkaApps/Shizuku-API&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Migrating from pre-v11&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Existing applications still works, of course.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/RikkaApps/Shizuku-API#migration-guide-for-existing-applications-use-shizuku-pre-v11&quot;&gt;https://github.com/RikkaApps/Shizuku-API#migration-guide-for-existing-applications-use-shizuku-pre-v11&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Attention&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;ADB permissions are limited&lt;/p&gt; &lt;p&gt;ADB has limited permissions and different on various system versions. You can see permissions granted to ADB &lt;a href=&quot;https://github.com/aosp-mirror/platform_frameworks_base/raw/master/packages/Shell/AndroidManifest.xml&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Before calling the API, you can use &lt;code&gt;ShizukuService#getUid&lt;/code&gt; to check if Shizuku is running user ADB, or use &lt;code&gt;ShizukuService#checkPermission&lt;/code&gt; to check if the server has sufficient permissions.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Hidden API limitation from Android 9&lt;/p&gt; &lt;p&gt;As of Android 9, the usage of the hidden APIs is limited for normal apps. Please use other methods (such as &lt;a href=&quot;https://github.com/LSPosed/AndroidHiddenApiBypass&quot;&gt;https://github.com/LSPosed/AndroidHiddenApiBypass&lt;/a&gt;).&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Android 8.0 &amp;amp; ADB&lt;/p&gt; &lt;p&gt;At present, the way Shizuku service gets the app process is to combine &lt;code&gt;IActivityManager#registerProcessObserver&lt;/code&gt; and &lt;code&gt;IActivityManager#registerUidObserver&lt;/code&gt; (26+) to ensure that the app process will be sent when the app starts. However, on API 26, ADB lacks permissions to use &lt;code&gt;registerUidObserver&lt;/code&gt;, so if you need to use Shizuku in a process that might not be started by an Activity, it is recommended to trigger the send binder by starting a transparent activity.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Direct use of &lt;code&gt;transactRemote&lt;/code&gt; requires attention&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt; &lt;p&gt;The API may be different under different Android versions, please be sure to check it carefully. Also, the &lt;code&gt;android.app.IActivityManager&lt;/code&gt; has the aidl form in API 26 and later, and &lt;code&gt;android.app.IActivityManager$Stub&lt;/code&gt; exists only on API 26.&lt;/p&gt; &lt;/li&gt; 
   &lt;li&gt; &lt;p&gt;&lt;code&gt;SystemServiceHelper.getTransactionCode&lt;/code&gt; may not get the correct transaction code, such as &lt;code&gt;android.content.pm.IPackageManager$Stub.TRANSACTION_getInstalledPackages&lt;/code&gt; does not exist on API 25 and there is &lt;code&gt;android.content.pm.IPackageManager$Stub.TRANSACTION_getInstalledPackages_47&lt;/code&gt; (this situation has been dealt with, but it is not excluded that there may be other circumstances). This problem is not encountered with the &lt;code&gt;ShizukuBinderWrapper&lt;/code&gt; method.&lt;/p&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Developing Shizuku itself&lt;/h2&gt; 
&lt;h3&gt;Build&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Clone with &lt;code&gt;git clone --recurse-submodules&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Run gradle task &lt;code&gt;:manager:assembleDebug&lt;/code&gt; or &lt;code&gt;:manager:assembleRelease&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The &lt;code&gt;:manager:assembleDebug&lt;/code&gt; task generates a debuggable server. You can attach a debugger to &lt;code&gt;shizuku_server&lt;/code&gt; to debug the server. Be aware that, in Android Studio, &quot;Run/Debug configurations&quot; - &quot;Always install with package manager&quot; should be checked, so that the server will use the latest code.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;All code files in this project are licensed under Apache 2.0&lt;/p&gt; 
&lt;p&gt;Under Apache 2.0 section 6, specifically:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;You are &lt;strong&gt;FORBIDDEN&lt;/strong&gt; to use &lt;code&gt;manager/src/main/res/mipmap*/ic_launcher*.png&lt;/code&gt; image files, unless for displaying Shizuku itself.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;You are &lt;strong&gt;FORBIDDEN&lt;/strong&gt; to use &lt;code&gt;Shizuku&lt;/code&gt; as app name or use &lt;code&gt;moe.shizuku.privileged.api&lt;/code&gt; as application id or declare &lt;code&gt;moe.shizuku.manager.permission.*&lt;/code&gt; permission.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/c22a2106ecf6eaac5e8d1ce59d8572518b6fc7aebe2ed5946a2b048edc0e2d65/RikkaApps/Shizuku" medium="image" />
      
    </item>
    
    <item>
      <title>AAswordman/Operit</title>
      <link>https://github.com/AAswordman/Operit</link>
      <description>&lt;p&gt;The most powerful AI agent and AI chat software on Android/Operit是一款Android上能力最为强大、发展最久的AI Agent&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;span&gt;中文&lt;/span&gt; | 
 &lt;a href=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/README(E).md&quot;&gt;English&lt;/a&gt; 
&lt;/div&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://img.shields.io/github/last-commit/AAswordman/Operit&quot; alt=&quot;Last Commit&quot; /&gt; 
 &lt;img src=&quot;https://img.shields.io/badge/Platform-Android_8.0%2B-brightgreen.svg?sanitize=true&quot; alt=&quot;Platform&quot; /&gt; 
 &lt;a href=&quot;https://github.com/AAswordman/Operit/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/AAswordman/Operit&quot; alt=&quot;Latest Release&quot; /&gt;&lt;/a&gt; 
 &lt;br /&gt; 
 &lt;a href=&quot;https://github.com/AAswordman/Operit/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/AAswordman/Operit&quot; alt=&quot;GitHub Stars&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://aaswordman.github.io/OperitWeb&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/📖-用户指南-blue.svg&quot; alt=&quot;User Guide&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://www.patreon.com/c/aaswordsman&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/🌍-Patreon-f96854.svg&quot; alt=&quot;Patreon&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://afdian.com/a/aaswordsman&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/💖-支持开发-ff6b6b.svg&quot; alt=&quot;Support Development&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/CONTRIBUTING.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/contributions-welcome-brightgreen.svg?sanitize=true&quot; alt=&quot;Contributions Welcome&quot; /&gt;&lt;/a&gt; 
 &lt;br /&gt; 
 &lt;a href=&quot;mailto:aaswordsman@foxmail.com&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/📧-Email-red.svg&quot; alt=&quot;Email&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://qm.qq.com/q/Sa4fKEH7sO&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/💬-QQ群-blue.svg&quot; alt=&quot;QQ Group&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://discord.gg/YnV9MWurRF&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/🎮-Discord-5865F2.svg&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://github.com/AAswordman/Operit/issues&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/🐛-Issues-orange.svg&quot; alt=&quot;Issues&quot; /&gt;&lt;/a&gt; 
&lt;/div&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/app/src/main/res/playstore-icon.png&quot; width=&quot;120&quot; height=&quot;120&quot; alt=&quot;Operit Logo&quot; /&gt; 
 &lt;h1&gt;Operit AI - 智能助手应用&lt;/h1&gt; 
 &lt;p&gt;📱 &lt;b&gt;移动端首个功能完备的AI智能助手应用，完全独立运行，拥有强大的工具调用能力&lt;/b&gt; 📱&lt;/p&gt; 
&lt;/div&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;div style=&quot;padding: 10px 0; text-align: center;&quot;&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/9f85b39450c8616909039b66d15a475a.jpg&quot; width=&quot;22%&quot; alt=&quot;Operit预览图1&quot; style=&quot;display: inline-block; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.15); margin: 0 3px; max-width: 220px;&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/88a7b7520e4628682a849cc00716c8de.jpg&quot; width=&quot;22%&quot; alt=&quot;Operit预览图2&quot; style=&quot;display: inline-block; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.15); margin: 0 3px; max-width: 220px;&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/9036f349c25888d357de5ce34580176d.jpg&quot; width=&quot;22%&quot; alt=&quot;Operit预览图3&quot; style=&quot;display: inline-block; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.15); margin: 0 3px; max-width: 220px;&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/d12038f26df3f814b4e3ce967537f039.jpg&quot; width=&quot;22%&quot; alt=&quot;Operit预览图4&quot; style=&quot;display: inline-block; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.15); margin: 0 3px; max-width: 220px;&quot; /&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🌟 项目简介&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Operit AI&lt;/strong&gt; 是移动端首个功能完备的 AI 智能助手应用，完全独立运行于您的 Android 设备上（除API调用），拥有强大的&lt;strong&gt;工具调用能力&lt;/strong&gt;、&lt;strong&gt;深度搜索&lt;/strong&gt;、&lt;strong&gt;工作流与自动化&lt;/strong&gt;、&lt;strong&gt;智能记忆库&lt;/strong&gt;，并支持&lt;strong&gt;人设定制&lt;/strong&gt;与&lt;strong&gt;角色卡&lt;/strong&gt;等高度自定义功能，集成 &lt;strong&gt;MNN/llama.cpp 本地模型&lt;/strong&gt;、&lt;strong&gt;MCP/Skill 生态&lt;/strong&gt;与&lt;strong&gt;多语言界面&lt;/strong&gt;。它不仅仅是聊天界面，更是与Android权限和各种工具深度融合的&lt;strong&gt;全能助手&lt;/strong&gt;，内置&lt;strong&gt;Ubuntu 24 环境&lt;/strong&gt;，提供前所未有的强大功能。&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;⚡ 核心亮点&lt;/h2&gt; 
&lt;table&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;td width=&quot;50%&quot;&gt; &lt;h3&gt;🖥️ Ubuntu 24 环境&lt;/h3&gt; &lt;p&gt;内置完整 Ubuntu 24 系统，支持 vim、MCP、Python等工具，在手机上运行复杂的Linux命令和自动化任务&lt;/p&gt; &lt;h3&gt;🧠 智能记忆系统&lt;/h3&gt; &lt;p&gt;AI自动分类管理记忆，支持时间查询/导入导出/自动总结，智能搜索历史对话，记住您的偏好和习惯，提供个性化服务&lt;/p&gt; &lt;h3&gt;🗣️ 语音交互&lt;/h3&gt; &lt;p&gt;连续自然对话，支持本地/云端 TTS + 本地 STT、自定义音色、语音/特定音频唤醒、自动朗读&lt;/p&gt; &lt;/td&gt; 
   &lt;td width=&quot;50%&quot;&gt; &lt;h3&gt;🤖 本地AI模型&lt;/h3&gt; &lt;p&gt;支持 MNN / llama.cpp 本地模型（GGUF），完全离线运行AI，保护隐私数据&lt;/p&gt; &lt;h3&gt;🎭 人设与角色卡&lt;/h3&gt; &lt;p&gt;自定义AI性格、说话风格，支持角色卡导入导出（酒馆/JSON）/备份/二维码分享，角色卡可互聊并拥有独立对话历史&lt;/p&gt; &lt;h3&gt;🔌 丰富工具生态&lt;/h3&gt; &lt;p&gt;40+ 内置工具 + MCP/Skill 市场插件 + 工具包/工作流，含自动点击 Agent、绘图/图片搜索、AI 互聊/自我认知、定时任务、提示词市场等，覆盖文件操作、网络请求、系统控制、媒体处理&lt;/p&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🛠️ 功能速览&lt;/h2&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;📦 内置工具系统（点击展开）&lt;/b&gt;&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&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;strong&gt;Linux环境&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;完整Ubuntu 24，支持apt包管理、Python/Node.js运行环境、自定义软件源&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;📁 &lt;strong&gt;文件系统&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;读写文件、搜索、解压缩、格式转换、Git集成&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;🌐 &lt;strong&gt;网络工具&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;HTTP请求、网页访问、文件上传下载、Web开发与导出&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;⚙️ &lt;strong&gt;系统操作&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;安装应用、权限管理、无障碍 / ADB / Root 三通道自动化（含 AutoGLM 自动点击 Agent，支持 adb root 虚拟屏/多显示器）&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;🎬 &lt;strong&gt;媒体处理&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;视频转换、帧提取、OCR/图像理解、相机拍照、音视频读取&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;🧑‍💻 &lt;strong&gt;开发与终端&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Web 工作区/一键打包、代码编辑/语法高亮、终端 SSH/Chroot/vim、Ctrl 组合键&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;🎨 &lt;strong&gt;AI 创作&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;绘图工具包（OpenAI/Qwen/NanoBanana）、图片搜索/下载&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;🔍 &lt;strong&gt;搜索引擎&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;深度搜索、DuckDuckGo、Tavily、谷歌学术、Bing、Sogou、Quark、百度地图集成&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;🧩 &lt;strong&gt;工具包 &amp;amp; 工作流&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;工具包生态/包管理、工作流自动化、定时触发、语音唤醒触发&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;🎨 界面定制（点击展开）&lt;/b&gt;&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;✨ &lt;strong&gt;主题系统&lt;/strong&gt;：自定义颜色、字体、间距、内边距&lt;/li&gt; 
  &lt;li&gt;🌍 &lt;strong&gt;多语言支持&lt;/strong&gt;：中英覆盖，自动随系统语言切换&lt;/li&gt; 
  &lt;li&gt;🔤 &lt;strong&gt;字体与排版&lt;/strong&gt;：全局字体大小、聊天边距自定义&lt;/li&gt; 
  &lt;li&gt;🎭 &lt;strong&gt;桌宠功能&lt;/strong&gt;：WebP动画支持、自定义表情、悬浮窗显示&lt;/li&gt; 
  &lt;li&gt;📱 &lt;strong&gt;布局优化&lt;/strong&gt;：隐藏状态栏、自定义工具栏、平板适配&lt;/li&gt; 
  &lt;li&gt;🎨 &lt;strong&gt;Markdown渲染&lt;/strong&gt;：LaTeX公式（支持左右滚动）、代码高亮、表格、Mermaid图表&lt;/li&gt; 
  &lt;li&gt;🧾 &lt;strong&gt;信息展示&lt;/strong&gt;：思考链折叠、HTML块预览、代码/思考块高度限制&lt;/li&gt; 
  &lt;li&gt;🪟 &lt;strong&gt;悬浮窗体验&lt;/strong&gt;：悬浮窗/气泡模式头像隐藏、圈选识屏、全屏预览&lt;/li&gt; 
  &lt;li&gt;🧮 &lt;strong&gt;数据统计&lt;/strong&gt;：Token 用量统计、模型饼图&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;🔗 集成能力（点击展开）&lt;/b&gt;&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;🤖 &lt;strong&gt;Tasker集成&lt;/strong&gt;：触发自定义AI代理事件，深度自动化&lt;/li&gt; 
  &lt;li&gt;🌐 &lt;strong&gt;MCP/Skill 市场&lt;/strong&gt;：一键安装插件、远程MCP、自动描述、uvx/npx支持&lt;/li&gt; 
  &lt;li&gt;🔌 &lt;strong&gt;多模型支持&lt;/strong&gt;：OpenAI、Claude、Gemini、百灵、OpenRouter、LMStudio&lt;/li&gt; 
  &lt;li&gt;🧪 &lt;strong&gt;模型与提示词管理&lt;/strong&gt;：多配置/参数自定义、提示词市场&lt;/li&gt; 
  &lt;li&gt;🔐 &lt;strong&gt;权限系统&lt;/strong&gt;：工具级权限控制与安全提示&lt;/li&gt; 
  &lt;li&gt;🔑 &lt;strong&gt;密钥池与统计&lt;/strong&gt;：批量测试/导入、Token 统计（模型饼图）&lt;/li&gt; 
  &lt;li&gt;🗂️ &lt;strong&gt;工作区绑定&lt;/strong&gt;：支持 SAF / SFTP / SSH 工作区绑定与文件访问&lt;/li&gt; 
  &lt;li&gt;🖱️ &lt;strong&gt;自动点击 Agent&lt;/strong&gt;：AutoGLM + UI Tree 双通道，支持自动化操作&lt;/li&gt; 
  &lt;li&gt;📊 &lt;strong&gt;工具并行&lt;/strong&gt;：只读工具并行执行，提升响应速度&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;💬 对话与记忆管理（点击展开）&lt;/b&gt;&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;🧠 &lt;strong&gt;记忆库&lt;/strong&gt;：自动分类/搜索、时间查询、导入导出、附件记忆&lt;/li&gt; 
  &lt;li&gt;💬 &lt;strong&gt;对话管理&lt;/strong&gt;：自动总结与总结编辑、历史分组/分支/迁移、对话锁定、角色卡独立历史&lt;/li&gt; 
  &lt;li&gt;⚡ &lt;strong&gt;对话并行&lt;/strong&gt;：并行对话处理、工具包 state 决策&lt;/li&gt; 
  &lt;li&gt;🤖 &lt;strong&gt;角色互动&lt;/strong&gt;：角色卡互聊、查看历史、思考链折叠&lt;/li&gt; 
  &lt;li&gt;📦 &lt;strong&gt;聊天记录&lt;/strong&gt;：多格式导入导出、历史备份与恢复&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;💾 数据与备份（点击展开）&lt;/b&gt;&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;🗂️ &lt;strong&gt;全局/自动备份&lt;/strong&gt;：数据库定时备份，支持损坏恢复（排除 MCP/Skill/终端/包）&lt;/li&gt; 
  &lt;li&gt;🎭 &lt;strong&gt;角色卡&lt;/strong&gt;：备份、导出（酒馆/JSON）、二维码分享&lt;/li&gt; 
  &lt;li&gt;🧷 &lt;strong&gt;工作区&lt;/strong&gt;：SAF/SFTP/SSH 绑定、代码编辑/语法高亮、Git ignore&lt;/li&gt; 
  &lt;li&gt;🧰 &lt;strong&gt;Skill 管理&lt;/strong&gt;：Skill 开关、仓库解析与缓存下载&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📸 功能展示&lt;/h2&gt; 
&lt;table&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;td align=&quot;center&quot; width=&quot;33%&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/webdev/c851e530a258bbbbf41f87dcb907b14.png&quot; width=&quot;100%&quot; /&gt;&lt;br /&gt; &lt;b&gt;Web开发&lt;/b&gt;&lt;br /&gt; 在手机上设计网页并导出为独立应用 &lt;/td&gt; 
   &lt;td align=&quot;center&quot; width=&quot;33%&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/floating_and_attach.jpg&quot; height=&quot;200px&quot; /&gt;&lt;br /&gt; &lt;b&gt;悬浮窗 &amp;amp; 附件&lt;/b&gt;&lt;br /&gt; 随时调用，便捷分享 &lt;/td&gt; 
   &lt;td align=&quot;center&quot; width=&quot;33%&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/assets/84ea63a7437eae374f53c5b64f52c24d.png&quot; height=&quot;200px&quot; /&gt;&lt;br /&gt; &lt;b&gt;插件市场&lt;/b&gt;&lt;br /&gt; 丰富的MCP生态 &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🚀 快速开始&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&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;strong&gt;系统要求&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Android 8.0+ (API 26+)，建议 4GB+ 内存，200MB+ 存储&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;📥 &lt;strong&gt;下载安装&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/AAswordman/Operit/releases&quot;&gt;Release页面&lt;/a&gt; 下载最新APK&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;📖 &lt;strong&gt;使用指南&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aaswordman.github.io/OperitWeb&quot;&gt;完整文档&lt;/a&gt; 包含详细教程和示例&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;安全提示：&lt;/strong&gt; 为确保您的数据安全，请务必从官方 &lt;a href=&quot;https://github.com/AAswordman/Operit/releases&quot;&gt;Release页面&lt;/a&gt; 或 &lt;a href=&quot;https://aaswordman.github.io/OperitWeb/&quot;&gt;官方网站&lt;/a&gt; 下载本应用。通过未知渠道下载的安装包可能被恶意修改，从而导致隐私泄露或设备被监听。&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;安装步骤：&lt;/strong&gt; 下载APK → 安装启动 → 按引导配置 → 开始使用 ✨&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🔮 TODO / 开发计划&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;UI 自动化与截图管线&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;✅ 已支持无障碍 / ADB / Root 三种权限模式的 UI 自动化&lt;/li&gt; 
   &lt;li&gt;✅ 支持 adb root 场景下的虚拟屏幕/多显示器（&lt;code&gt;display&lt;/code&gt; 参数）&lt;/li&gt; 
   &lt;li&gt;✅ UI Tree 支持 AutoGLM + 本地 uiautomator dump 双方案&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📅 版本更新历程&lt;/h2&gt; 
&lt;table&gt; 
 &lt;tbody&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;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.10.1&lt;/b&gt;&lt;br /&gt;&lt;sub&gt;最新&lt;/sub&gt;&lt;/td&gt; 
   &lt;td&gt;2026-04-17&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;内置浏览器与网页自动化&lt;/b&gt;：大幅增强内置浏览器，支持标签页、历史、书签、权限、多窗口、最小化与视口控制，并补齐浏览器脚本的导入、安装、启停、存储与页面菜单能力&lt;br /&gt; • &lt;b&gt;虚拟形象与界面定制&lt;/b&gt;：支持 FBX 虚拟形象并升级 MMD 预览，新增液态玻璃主题效果，并增强侧边栏、聊天气泡与输入栏的外观自定义&lt;br /&gt; • &lt;b&gt;插件、工作区与上下文增强&lt;/b&gt;：支持通过配置编辑器调试和自动编写 Operit 插件，新增本地 HTTP 对话入口、工作区重命名与规则文件自动读取，并增强历史跳转、双向分页与上下文自动补充能力&lt;br /&gt; • &lt;b&gt;稳定性与性能优化&lt;/b&gt;：修复工具权限、HTTP TTS、SSH/tmux 长输出、历史跳转、GIF/公式/Markdown 渲染、MCP 配置与统计等问题，并持续优化对话链路、深度搜索、记忆系统、浏览器与包管理器 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.10.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2026-03-18&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;角色卡群聊与 AI 自配置&lt;/b&gt;：支持多个角色卡群聊与 @ 交互，新增 AI 自我设置能力，可辅助配置 MCP、Skill、STT、TTS 与模型参数&lt;br /&gt; • &lt;b&gt;主题与交互升级&lt;/b&gt;：新增分组折叠消息、气泡主题及字体/颜色/背景自定义、更宽气泡、输入框液态玻璃、长按图标直达设置/语音模式，以及助手形象与 MP4 虚拟形象支持&lt;br /&gt; • &lt;b&gt;工具与平台扩展&lt;/b&gt;：新增 Ollama、NVIDIA、OpenAI Response 通用模式，补充独立 SSH 插件工具包、Java Bridge、APKTool 插件、Web 自动化下载、Markdown 音视频渲染、xAI 视频生成、工作流取消、终端自定义按键与消息队列&lt;br /&gt; • &lt;b&gt;修复与性能优化&lt;/b&gt;：修复语音识别、记忆并发、悬浮窗交互、终端显示、Web 自动化全屏、MNN Tool Call 等问题，并优化记忆召回、市场搜索、工作区模板、grep 工具性能与 Agent 重试稳定性 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.9.1&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2026-02-20&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;稳定性修复&lt;/b&gt;：集中修复 1.9.0 多项问题，提升整体可用性与流畅性&lt;br /&gt; • &lt;b&gt;终端与工具调用&lt;/b&gt;：增强终端工具，修复交互 UI 卡住、严格工具调用历史工具报错、Windows 控制器 raw 命令执行问题&lt;br /&gt; • &lt;b&gt;MCP 与记忆库&lt;/b&gt;：修复远程 MCP 无法关闭，重做记忆库写入逻辑，支持外接向量模型并新增连接修改工具&lt;br /&gt; • &lt;b&gt;功能补充与界面修复&lt;/b&gt;：新增未绑定角色卡聊天记录删除、工作流批量删除与执行日志查看，修复输入法/暗色输入框/主题透明度/工具箱包管理等问题 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.9.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2026-02-17&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;移动端网页自动操作&lt;/b&gt;：新增网页操作能力，支持工作区 Web 项目 CORS 绕过访问外部网页&lt;br /&gt; • &lt;b&gt;Windows 终端操作&lt;/b&gt;：支持 Windows 命令操作，可控制 Codex 等 CLI，新增严格工具调用模式补充兼容性&lt;br /&gt; • &lt;b&gt;工具与系统扩展&lt;/b&gt;：新增 SQL 查看器、Android 工作区模板、OpenAI response 兼容供应商、skill 直接输入添加、统计饼图&lt;br /&gt; • &lt;b&gt;修复与优化&lt;/b&gt;：修复图片读取/上下文总结/特殊符号截断/ffmpeg 等问题，增强模型连通性测试输出与 MCP 加载提示 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.8.1&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2026-02-03&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;llama.cpp 本地推理&lt;/b&gt;：支持 GGUF 本地模型与相关工具&lt;br /&gt; • &lt;b&gt;工具与界面&lt;/b&gt;：图片搜索/下载、HTML 块预览、代码/思考块高度限制、气泡头像隐藏、Token 饼图、思考链折叠&lt;br /&gt; • &lt;b&gt;数据与备份&lt;/b&gt;：全局备份（排除 MCP/skill/终端/包）+ 角色卡备份/导出/分享、Skill 开关、密钥池导入/批量测试、工作区支持 SAF 绑定&lt;br /&gt; • &lt;b&gt;修复&lt;/b&gt;：AI 朗读回声录制、悬浮窗 Token 统计、角色编辑键盘遮挡、深搜 Token 爆炸、MCP 启动、工作流悬浮窗退出、表格截断、硅基流动语音打断 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.8.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2026-01-13&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;工作流系统&lt;/b&gt;：支持计算/传入传出/执行等能力，并支持语音唤醒触发&lt;br /&gt; • &lt;b&gt;语音唤醒&lt;/b&gt;：直接进入语音对话模式，支持语音下关键词快速附件附着&lt;br /&gt; • &lt;b&gt;对话并行&lt;/b&gt;：支持对话并行处理，工具包 state 机制可动态决定工具&lt;br /&gt; • &lt;b&gt;新增与优化&lt;/b&gt;：记忆时间查询、自动备份、OpenAI 绘图/语音供应商、MCP 启动优化、终端 chroot、修复多项 BUG &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.7.1&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-12-31&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;Root 虚拟屏幕自动化&lt;/b&gt;：支持 root 启动虚拟屏幕，AutoGLM 并发多窗口任务&lt;br /&gt; • &lt;b&gt;Skill 生态&lt;/b&gt;：新增 Skill 协议与 Skill 市场，并支持 BETA 计划追踪 nightly&lt;br /&gt; • &lt;b&gt;交互增强&lt;/b&gt;：总结编辑、网页访问改悬浮窗模式、圈选识屏、对话锁定&lt;br /&gt; • &lt;b&gt;修复与优化&lt;/b&gt;：大图崩溃、ToolCall 错误、代码块换行、启动速度与虚拟屏稳定性 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.7.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-12-19&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;GUI 自动化里程碑&lt;/b&gt;：Autoglm + 虚拟屏幕（可在设置中开关虚拟屏幕）&lt;br /&gt; • &lt;b&gt;自动化增强&lt;/b&gt;：一键 Autoglm 配置与单独执行器，虚拟屏开关逻辑与截图质量自定义&lt;br /&gt; • &lt;b&gt;体验优化&lt;/b&gt;：密钥非聚焦显示为星号，强制不允许 Autoglm 设置为主模型&lt;br /&gt; • &lt;b&gt;工具扩展&lt;/b&gt;：NanoBanana 绘图包、apply file 非覆盖支持、MNN STT 等 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.6.3&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-12-08&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;原生ToolCall支持&lt;/b&gt;：支持原生模型工具调用、DeepSeek思考工具&lt;br /&gt; • &lt;b&gt;工作区与终端增强&lt;/b&gt;：新建时选择项目类型、SSH文件系统连接、终端无障碍支持&lt;br /&gt; • &lt;b&gt;模型与消息显示&lt;/b&gt;：支持模型配置多选、消息显示模型名称与提供者&lt;br /&gt; • &lt;b&gt;优化与修复&lt;/b&gt;：优化悬浮窗、修复终端卡顿、迁移工作区到内部存储 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.6.2&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-11-20&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;对话管理增强&lt;/b&gt;：长按开分支、历史记录分类显示、批量迁移&lt;br /&gt; • &lt;b&gt;模型配置优化&lt;/b&gt;：配置重命名、上下文绑定、谷歌原生搜索&lt;br /&gt; • &lt;b&gt;Bug修复&lt;/b&gt;：界面切换、粗体换行、气泡模式等问题&lt;br /&gt; • 增加crossref学术论文检索包、升级代码编辑器 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.6.1&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-11-05&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;性能大优化&lt;/b&gt;：重做UI绘制，大幅提升流畅性&lt;br /&gt; • &lt;b&gt;AI视觉增强&lt;/b&gt;：直接识别图片、间接识别能力&lt;br /&gt; • &lt;b&gt;终端SSH&lt;/b&gt;：支持SSH连接和反向挂载手机文件系统&lt;br /&gt; • 自动总结机制、深度搜索、新授权系统 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.6.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-10-21&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;MNN本地模型&lt;/b&gt;支持&lt;br /&gt; • &lt;b&gt;记忆库大更新&lt;/b&gt;：AI自动分类、智能搜索、导入导出&lt;br /&gt; • &lt;b&gt;终端优化&lt;/b&gt;：vim支持、进度条、自定义软件源&lt;br /&gt; • Tasker集成、桌宠功能、故事线标签 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.5.2&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-10-05&lt;/td&gt; 
   &lt;td&gt; • MCP增强：uvx/npx支持、启动加速&lt;br /&gt; • 工作区 Git ignore&lt;br /&gt; • 相机拍照、HTML渲染、正则过滤 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.5.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-09&lt;/td&gt; 
   &lt;td&gt; • &lt;b&gt;Ubuntu 24终端&lt;/b&gt;完整集成&lt;br /&gt; • MCP市场上线&lt;br /&gt; • 桌宠功能、深度搜索模式 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.4.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-08&lt;/td&gt; 
   &lt;td&gt; • 多工具并行执行&lt;br /&gt; • 人设卡系统、角色选择器&lt;br /&gt; • PNG角色卡导入 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.3.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-08&lt;/td&gt; 
   &lt;td&gt; • Web开发功能&lt;br /&gt; • 主题选择器、自定义UI&lt;br /&gt; • Anthropic Claude支持 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.2.x&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-07&lt;/td&gt; 
   &lt;td&gt; • 语音对话系统&lt;br /&gt; • 知识库功能&lt;br /&gt; • DragonBones动画支持 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.1.x&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-06&lt;/td&gt; 
   &lt;td&gt; • MCP协议支持&lt;br /&gt; • OCR识别、悬浮窗&lt;br /&gt; • Gemini完整支持 &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;v1.0.0&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;2025-05&lt;/td&gt; 
   &lt;td&gt; • 首个正式版本&lt;br /&gt; • 基础AI对话、工具调用&lt;br /&gt; • Shizuku/Root集成 &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;📝 &lt;strong&gt;完整更新日志&lt;/strong&gt;：访问 &lt;a href=&quot;https://github.com/AAswordman/Operit/releases&quot;&gt;Releases 页面&lt;/a&gt; 查看每个版本的详细更新内容&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;hr /&gt; 
&lt;h2&gt;👨‍💻 开源共创&lt;/h2&gt; 
&lt;p&gt;欢迎加入 Operit 开源生态！我们欢迎各种贡献：第三方脚本、MCP插件、核心功能开发。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;开发者须知：&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;📚 &lt;a href=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/CONTRIBUTING.md&quot;&gt;开源共创指南&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/docs/SCRIPT_DEV_GUIDE.md&quot;&gt;脚本开发指南&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;📦 构建项目需从 &lt;a href=&quot;https://drive.google.com/drive/folders/1g-Q_i7cf6Ua4KX9ZM6V282EEZvTVVfF7?usp=sharing&quot;&gt;Google Drive&lt;/a&gt; 下载依赖库压缩包（&lt;code&gt;models.zip&lt;/code&gt;、&lt;code&gt;subpack.zip&lt;/code&gt;、&lt;code&gt;jniLibs.zip&lt;/code&gt;、&lt;code&gt;libs.zip&lt;/code&gt;）&lt;/li&gt; 
 &lt;li&gt;💬 加入社区讨论：&lt;a href=&quot;https://qm.qq.com/q/Sa4fKEH7sO&quot;&gt;QQ群&lt;/a&gt; | &lt;a href=&quot;https://discord.gg/YnV9MWurRF&quot;&gt;Discord&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;💖 贡献者&lt;/h3&gt; 
&lt;p&gt;感谢所有为 Operit AI 做出贡献的人！&lt;/p&gt; 
&lt;a href=&quot;https://github.com/AAswordman/Operit/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=AAswordman/Operit&quot; /&gt; &lt;/a&gt; 
&lt;h2&gt;💖 支持开发&lt;/h2&gt; 
&lt;p&gt;如果 Operit AI 对您有帮助，欢迎自愿支持项目持续开发与基础运营：&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;海外支持可使用 &lt;a href=&quot;https://www.patreon.com/c/aaswordsman&quot;&gt;Patreon&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;境内支持可使用 &lt;a href=&quot;https://afdian.com/a/aaswordsman&quot;&gt;爱发电&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;赞助完全自愿，不与任何功能、额度、更新、答疑或其他权益挂钩&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;即使不赞助，也不影响正常使用、获取更新或访问开源代码&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;您也可以直接使用 GitHub 仓库顶部的 &lt;code&gt;Sponsor&lt;/code&gt; 按钮进入赞助页面&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📄 许可证&lt;/h2&gt; 
&lt;p&gt;本项目采用 &lt;a href=&quot;https://www.gnu.org/licenses/lgpl-3.0.html&quot;&gt;GNU LGPLv3&lt;/a&gt; 许可证。&lt;/p&gt; 
&lt;p&gt;简单来说，这意味着：&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;您可以自由地使用、修改和分发本项目的代码。&lt;/li&gt; 
 &lt;li&gt;如果您修改了代码并进行分发，您也必须以 LGPLv3 许可证开源您修改过的部分。&lt;/li&gt; 
 &lt;li&gt;详细信息请参阅 &lt;a href=&quot;https://raw.githubusercontent.com/AAswordman/Operit/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt; 文件。&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📝 问题反馈&lt;/h2&gt; 
&lt;p&gt;遇到问题或有建议？欢迎 &lt;a href=&quot;https://github.com/AAswordman/Operit/issues&quot;&gt;提交 Issue&lt;/a&gt;！&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;提交指南：&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;📝 清晰描述问题/建议，提供复现步骤&lt;/li&gt; 
 &lt;li&gt;📱 附上设备型号、系统版本等信息&lt;/li&gt; 
 &lt;li&gt;📸 如有可能，提供截图或录屏&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;h3&gt;⭐ 如果觉得项目不错，请给我们一个 Star ⭐&lt;/h3&gt; 
 &lt;p&gt;&lt;b&gt;🚀 帮助我们推广，让更多人了解 Operit AI 🚀&lt;/b&gt;&lt;/p&gt; 
 &lt;br /&gt; 
 &lt;p&gt;&lt;sub&gt;Made with ❤️ by the Operit Team&lt;/sub&gt;&lt;/p&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/948839453/15a89769-0c2c-4b5f-a1db-303ce97cfb76" medium="image" />
      
    </item>
    
    <item>
      <title>google-ai-edge/gallery</title>
      <link>https://github.com/google-ai-edge/gallery</link>
      <description>&lt;p&gt;A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Google AI Edge Gallery ✨&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google-ai-edge/gallery/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-Apache%202.0-blue.svg?sanitize=true&quot; alt=&quot;License&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/google-ai-edge/gallery/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/google-ai-edge/gallery&quot; alt=&quot;GitHub release (latest by date)&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Explore, Experience, and Evaluate the Future of On-Device Generative AI with Google AI Edge.&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;AI Edge Gallery is the premier destination for running the world&#39;s most powerful open-source Large Language Models (LLMs) on your mobile device. Experience high-performance Generative AI directly on your hardware—fully offline, private, and lightning-fast.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Now Featuring: Gemma 4&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;The latest version brings official support for the newly released Gemma 4 family. As the centerpiece of this release, Gemma 4 allows you to test the cutting edge of on-device AI. Experience advanced reasoning, logic, and creative capabilities without ever sending your data to a server.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Install the app today from Google Play&lt;/strong&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Install the app today from App Store&lt;/strong&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.ai.edge.gallery&quot;&gt;&lt;img alt=&quot;Get it on Google Play&quot; height=&quot;120&quot; src=&quot;https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;a href=&quot;https://apps.apple.com/us/app/google-ai-edge-gallery/id6749645337?itscg=30200&amp;amp;itsct=apps_box_badge&amp;amp;mttnsubad=6749645337&quot; style=&quot;display: inline-block;&quot;&gt; &lt;img src=&quot;https://toolbox.marketingtools.apple.com/api/v2/badges/download-on-the-app-store/black/en-us?releaseDate=1771977600&quot; alt=&quot;Download on the App Store&quot; style=&quot;width: 246px; height: 90px; vertical-align: middle; object-fit: contain;&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;For users without Google Play access, install the apk from the &lt;a href=&quot;https://github.com/google-ai-edge/gallery/releases/latest/&quot;&gt;&lt;strong&gt;latest release&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;App Preview&lt;/h2&gt; 
&lt;img width=&quot;480&quot; alt=&quot;01&quot; src=&quot;https://github.com/user-attachments/assets/a809ad78-aef4-4169-91ee-de7213cbb3bd&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;02&quot; src=&quot;https://github.com/user-attachments/assets/1effd10d-f45a-4f7b-9435-f50f1bdd36b6&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;03&quot; src=&quot;https://github.com/user-attachments/assets/e5089e41-2c18-4fbe-9011-ebe9e5a02044&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;04&quot; src=&quot;https://github.com/user-attachments/assets/0f39d3ed-7403-4606-a7c6-b2c7e51ba6c1&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;05&quot; src=&quot;https://github.com/user-attachments/assets/8c229e96-b598-4735-9f60-e96907e1d5d5&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;06&quot; src=&quot;https://github.com/user-attachments/assets/ac9fb77b-81de-4197-9ed3-f6fe58290b3e&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;07&quot; src=&quot;https://github.com/user-attachments/assets/bc86ba07-2eaf-49b1-980f-8a87a85c596f&quot; /&gt; 
&lt;img width=&quot;480&quot; alt=&quot;08&quot; src=&quot;https://github.com/user-attachments/assets/061564ed-030f-4630-810b-13a7863fce4c&quot; /&gt; 
&lt;h2&gt;✨ Core Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Agent Skills&lt;/strong&gt;: Transform your LLM from a conversationalist into a proactive assistant. Use the Agent Skills tile to augment model capabilities with tools like Wikipedia for fact-grounding, interactive maps, and rich visual summary cards. You can even load modular skills from a URL or browse community contributions on GitHub Discussions.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;AI Chat with Thinking Mode&lt;/strong&gt;: Engage in fluid, multi-turn conversations and toggle the new Thinking Mode to peek &quot;under the hood.&quot; This feature allows you to see the model’s step-by-step reasoning process, which is perfect for understanding complex problem-solving. Note: Thinking Mode currently works with supported models, starting with the Gemma 4 family.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Ask Image&lt;/strong&gt;: Use multimodal power to identify objects, solve visual puzzles, or get detailed descriptions using your device’s camera or photo gallery.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Audio Scribe&lt;/strong&gt;: Transcribe and translate voice recordings into text in real-time using high-efficiency on-device language models.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Prompt Lab&lt;/strong&gt;: A dedicated workspace to test different prompts and single-turn use cases with granular control over model parameters like temperature and top-k.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Mobile Actions&lt;/strong&gt;: Unlock offline device controls and automated tasks powered entirely by a finetune of FunctionGemma 270m.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Tiny Garden&lt;/strong&gt;: A fun, experimental mini-game that uses natural language to plant and harvest a virtual garden using a finetune of FunctionGemma 270m.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Model Management &amp;amp; Benchmark&lt;/strong&gt;: Gallery is a flexible sandbox for a wide variety of open-source models. Easily download models from the list or load your own custom models. Manage your model library effortlessly and run benchmark tests to understand exactly how each model performs on your specific hardware.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;100% On-Device Privacy&lt;/strong&gt;: All model inferences happen directly on your device hardware. No internet is required, ensuring total privacy for your prompts, images, and sensitive data.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;🏁 Get Started in Minutes!&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Check OS Requirement&lt;/strong&gt;: Android 12 and up, and iOS 17 and up.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Download the App:&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Install the app from &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.ai.edge.gallery&quot;&gt;Google Play&lt;/a&gt; or &lt;a href=&quot;https://apps.apple.com/us/app/google-ai-edge-gallery/id6749645337&quot;&gt;App Store&lt;/a&gt;.&lt;/li&gt; 
   &lt;li&gt;For users without Google Play access: install the apk from the &lt;a href=&quot;https://github.com/google-ai-edge/gallery/releases/latest/&quot;&gt;&lt;strong&gt;latest release&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Install &amp;amp; Explore:&lt;/strong&gt; For detailed installation instructions (including for corporate devices) and a full user guide, head over to our &lt;a href=&quot;https://github.com/google-ai-edge/gallery/wiki&quot;&gt;&lt;strong&gt;Project Wiki&lt;/strong&gt;&lt;/a&gt;!&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;🛠️ Technology Highlights&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Google AI Edge:&lt;/strong&gt; Core APIs and tools for on-device ML.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;LiteRT:&lt;/strong&gt; Lightweight runtime for optimized model execution.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Hugging Face Integration:&lt;/strong&gt; For model discovery and download.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;⌨️ Development&lt;/h2&gt; 
&lt;p&gt;Check out the &lt;a href=&quot;https://raw.githubusercontent.com/google-ai-edge/gallery/main/DEVELOPMENT.md&quot;&gt;development notes&lt;/a&gt; for instructions about how to build the app locally.&lt;/p&gt; 
&lt;h2&gt;🤝 Feedback&lt;/h2&gt; 
&lt;p&gt;This is an &lt;strong&gt;experimental Beta release&lt;/strong&gt;, and your input is crucial!&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;🐞 &lt;strong&gt;Found a bug?&lt;/strong&gt; &lt;a href=&quot;https://github.com/google-ai-edge/gallery/issues/new?assignees=&amp;amp;labels=bug&amp;amp;template=bug_report.md&amp;amp;title=%5BBUG%5D&quot;&gt;Report it here!&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;💡 &lt;strong&gt;Have an idea?&lt;/strong&gt; &lt;a href=&quot;https://github.com/google-ai-edge/gallery/issues/new?assignees=&amp;amp;labels=enhancement&amp;amp;template=feature_request.md&amp;amp;title=%5BFEATURE%5D&quot;&gt;Suggest a feature!&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;📄 License&lt;/h2&gt; 
&lt;p&gt;Licensed under the Apache License, Version 2.0. See the &lt;a href=&quot;https://raw.githubusercontent.com/google-ai-edge/gallery/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt; file for details.&lt;/p&gt; 
&lt;h2&gt;🔗 Useful Links&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/google-ai-edge/gallery/wiki&quot;&gt;&lt;strong&gt;Project Wiki (Detailed Guides)&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://huggingface.co/litert-community&quot;&gt;Hugging Face LiteRT Community&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/google-ai-edge/LiteRT-LM&quot;&gt;LiteRT-LM&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://ai.google.dev/edge&quot;&gt;Google AI Edge Documentation&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/0a110a015b7a0a5008eb8d7abf74d1b8e44b8945d66381a722aa4d38333733bd/google-ai-edge/gallery" medium="image" />
      
    </item>
    
    <item>
      <title>iamgio/quarkdown</title>
      <link>https://github.com/iamgio/quarkdown</link>
      <description>&lt;p&gt;🪐 Markdown with superpowers: from ideas to papers, presentations, websites, books, and knowledge bases.&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/tbanner-light.svg&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/tbanner-dark.svg&quot; /&gt; 
  &lt;img alt=&quot;Quarkdown banner&quot; src=&quot;https://github.com/user-attachments/assets/68dfb3bf-9466-44f3-b220-7067322c4887&quot; /&gt; 
 &lt;/picture&gt; &lt;br /&gt; &lt;a href=&quot;https://quarkdown.com/wiki&quot;&gt;&lt;img alt=&quot;Wiki&quot; src=&quot;https://img.shields.io/badge/wiki-read-darkcyan&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://quarkdown.com/docs&quot;&gt;&lt;img alt=&quot;Docs&quot; src=&quot;https://img.shields.io/badge/docs-read-blue&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/iamgio/quarkdown/releases/latest&quot;&gt;&lt;img alt=&quot;Release&quot; src=&quot;https://img.shields.io/github/v/release/iamgio/quarkdown?color=mediumseagreen&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=quarkdown.quarkdown-vscode&quot;&gt;&lt;img alt=&quot;Visual Studio Code Extension Version&quot; src=&quot;https://img.shields.io/github/v/release/quarkdown-labs/quarkdown-vscode?color=blue&amp;amp;label=vscode&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://pinterest.github.io/ktlint&quot;&gt;&lt;img alt=&quot;FMT: Ktlint&quot; src=&quot;https://img.shields.io/badge/fmt-ktlint-7f52ff?logo=kotlin&amp;amp;logoColor=f5f5f5&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.codefactor.io/repository/github/iamgio/quarkdown&quot;&gt;&lt;img alt=&quot;CodeFactor&quot; src=&quot;https://www.codefactor.io/repository/github/iamgio/quarkdown/badge/main&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt; &lt;a href=&quot;https://trendshift.io/repositories/13945&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/13945&quot; alt=&quot;iamgio%2Fquarkdown | Trendshift&quot; style=&quot;width: 250px; height: 55px;&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;a href=&quot;https://www.producthunt.com/products/quarkdown?embed=true&amp;amp;utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-quarkdown&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img alt=&quot;Quarkdown - Markdown with superpowers: from ideas to stunning documents. | Product Hunt&quot; width=&quot;250&quot; height=&quot;54&quot; src=&quot;https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1130470&amp;amp;theme=light&amp;amp;t=1777150043744&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;Releases&lt;/strong&gt; &lt;br /&gt; &lt;a href=&quot;https://github.com/iamgio/quarkdown/releases/tag/latest&quot;&gt;Latest&lt;/a&gt; &amp;nbsp; | &amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://github.com/iamgio/quarkdown/releases/latest&quot;&gt;Stable&lt;/a&gt;&lt;/strong&gt;&amp;nbsp; &lt;br /&gt; &lt;/p&gt;
&lt;hr /&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h1&gt;Table of contents&lt;/h1&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#about&quot;&gt;About&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#as-simple-as-you-expect&quot;&gt;Demo&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#targets&quot;&gt;Targets&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#comparison&quot;&gt;Comparison&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#getting-started&quot;&gt;Getting started&lt;/a&gt; 
  &lt;ol&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#installation&quot;&gt;Installation&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#quickstart-&quot;&gt;Quickstart&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#creating-a-project&quot;&gt;Creating a project&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#compiling&quot;&gt;Compiling&lt;/a&gt;&lt;/li&gt; 
  &lt;/ol&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#mock-document&quot;&gt;Mock document&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#contributing&quot;&gt;Contributing&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#sponsors&quot;&gt;Sponsors&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#concept&quot;&gt;Concept&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#license&quot;&gt;License&lt;/a&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h1&gt;About&lt;/h1&gt; 
&lt;p&gt;Quarkdown is a modern Markdown-based typesetting system designed for &lt;strong&gt;versatility&lt;/strong&gt;. It allows a single project to compile seamlessly into a print-ready book, academic paper, knowledge base, or interactive presentation. All through an incredibly powerful Turing-complete extension of Markdown, ensuring your ideas flow automatically into paper.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/paged-demo.png&quot; alt=&quot;Paper demo&quot; /&gt; &lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;em&gt;Original credits: &lt;a href=&quot;https://arxiv.org/abs/1706.03762v7&quot;&gt;Attention Is All You Need&lt;/a&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;br /&gt; 
&lt;p&gt;Born as an extension of CommonMark and GFM, the Quarkdown Flavor brings &lt;strong&gt;functions&lt;/strong&gt; to Markdown, along with many other syntax extensions.&lt;/p&gt; 
&lt;br /&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;This is a function call:&lt;/p&gt; 
 &lt;pre&gt;&lt;code&gt;.somefunction {arg1} {arg2}
    Body argument
&lt;/code&gt;&lt;/pre&gt; 
&lt;/blockquote&gt; 
&lt;br /&gt; 
&lt;p&gt;&lt;strong&gt;Possibilities are unlimited&lt;/strong&gt; thanks to an ever-expanding &lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/quarkdown-stdlib/src/main/kotlin/com/quarkdown/stdlib&quot;&gt;standard library&lt;/a&gt;, which offers layout builders, I/O, math, conditional statements and loops.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Not enough?&lt;/strong&gt; You can still define your own functions and variables, all within Markdown. You can even create awesome libraries for everyone to use.&lt;/p&gt; 
&lt;br /&gt; 
&lt;blockquote&gt; 
 &lt;pre&gt;&lt;code&gt;.function {greet}
    to from:
    **Hello, .to** from .from!

.greet {world} from:{iamgio}
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;Result: &lt;strong&gt;Hello, world&lt;/strong&gt; from iamgio!&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;br /&gt; 
&lt;p&gt;This out-of-the-box scripting support opens doors to complex and dynamic content that would be otherwise impossible to achieve with vanilla Markdown.&lt;/p&gt; 
&lt;p&gt;Combined with live preview, ⚡ fast compilation speed and a powerful &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=quarkdown.quarkdown-vscode&quot;&gt;VS Code extension&lt;/a&gt;, Quarkdown simply gets the work done, whether it&#39;s an academic paper, book, knowledge base or interactive presentation.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/quarkdown-labs/quarkdown-vscode/refs/heads/project-files/live-preview.gif&quot; alt=&quot;Live preview&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2 align=&quot;center&quot;&gt;Looking for something?&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt; Check out the &lt;a href=&quot;https://quarkdown.com/wiki&quot; target=&quot;_blank&quot;&gt;wiki&lt;/a&gt; &lt;/strong&gt; to get started and learn more about the language and its features! &lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;As simple as you expect...&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/code-paper.png&quot; alt=&quot;Paper code demo&quot; /&gt; &lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;em&gt;Inspired by: &lt;a href=&quot;https://news.mit.edu/2025/x-ray-flashes-nearby-supermassive-black-hole-accelerate-mysteriously-0113&quot;&gt;X-ray flashes from a nearby supermassive black hole accelerate mysteriously&lt;/a&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2 align=&quot;right&quot;&gt;...as complex as you need.&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/code-chart.png&quot; alt=&quot;Chart code demo&quot; /&gt; &lt;/p&gt; 
&lt;h1&gt;Targets&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul class=&quot;task-list&quot;&gt; 
   &lt;li class=&quot;task-list-item&quot;&gt; &lt;p&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_0&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_0&quot;&gt; &lt;strong&gt;Plain&lt;/strong&gt;&lt;br /&gt; Continuous flow like Notion/Obsidian, perfect for static websites and knowledge management - check out the author&#39;s &lt;a href=&quot;https://iamgio.eu/&quot;&gt;personal website&lt;/a&gt;.&lt;/label&gt;&lt;/p&gt; &lt;/li&gt; 
   &lt;li class=&quot;task-list-item&quot;&gt; &lt;p&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_1&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_1&quot;&gt; &lt;strong&gt;Paged&lt;/strong&gt; &lt;sup&gt;via &lt;a href=&quot;https://pagedjs.org&quot;&gt;paged.js&lt;/a&gt;&lt;/sup&gt;&lt;br /&gt; Perfect for papers, articles and books - check out the &lt;a href=&quot;https://github.com/quarkdown-labs/generated/raw/main/mock/paperwhite_latex.pdf&quot;&gt;demo document&lt;/a&gt;.&lt;/label&gt;&lt;/p&gt; &lt;/li&gt; 
   &lt;li class=&quot;task-list-item&quot;&gt; &lt;p&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_2&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_2&quot;&gt; &lt;strong&gt;Slides&lt;/strong&gt; &lt;sup&gt;via &lt;a href=&quot;https://revealjs.com&quot;&gt;reveal.js&lt;/a&gt;&lt;/sup&gt;&lt;br /&gt; Perfect for interactive presentations.&lt;/label&gt;&lt;/p&gt; &lt;/li&gt; 
   &lt;li class=&quot;task-list-item&quot;&gt; &lt;p&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_3&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_3&quot;&gt; &lt;strong&gt;Docs&lt;/strong&gt;&lt;br /&gt; Perfect for wikis, technical documentation and large knowledge bases - check out &lt;a href=&quot;https://quarkdown.com/wiki&quot;&gt;Quarkdown&#39;s wiki&lt;/a&gt;.&lt;/label&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;PDF&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul class=&quot;task-list&quot;&gt; 
   &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_4&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_4&quot;&gt; All document types and features supported by HTML are also supported when exporting to PDF.&lt;/label&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Plain text&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The desired document type can be set by calling the &lt;a href=&quot;https://quarkdown.com/wiki/document-types&quot;&gt;&lt;code&gt;.doctype&lt;/code&gt; function&lt;/a&gt; within the source itself:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;.doctype {plain}&lt;/code&gt; (default)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.doctype {paged}&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.doctype {slides}&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.doctype {docs}&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;Comparison&lt;/h1&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Quarkdown&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;LaTeX&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Typst&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;AsciiDoc&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;MDX&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Concise and readable&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Full document control&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Scripting&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Partial&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Book/article export&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Third-party&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Presentation export&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Third-party&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Static site export&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Experimental&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Docs/wiki export&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;❌&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Learning curve&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;🟢&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;🔴&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;🟠&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;🟢&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Targets&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;HTML, PDF, TXT&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;PDF, PostScript&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;HTML, PDF&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;HTML, PDF, ePub&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;HTML&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;LaTeX&lt;/th&gt; 
   &lt;th&gt;Quarkdown&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt; &lt;pre&gt;&lt;code class=&quot;language-latex&quot;&gt;\tableofcontents

\section{Section}

\subsection{Subsection}

\begin{enumerate}
    \item \textbf{First} item
    \item \textbf{Second} item
\end{itemize}

\begin{center}
    This text is \textit{centered}.
\end{center}

\begin{figure}[!h]
    \centering
    \begin{subfigure}[b]
        \includegraphics[width=0.3\linewidth]{img1.png}
    \end{subfigure}
    \begin{subfigure}[b]
        \includegraphics[width=0.3\linewidth]{img2.png}
    \end{subfigure}
    \begin{subfigure}[b]
        \includegraphics[width=0.3\linewidth]{img3.png}
    \end{subfigure}
\end{figure}
&lt;/code&gt;&lt;/pre&gt; &lt;/td&gt; 
   &lt;td&gt; &lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;.tableofcontents

# Section

## Subsection

1. **First** item
2. **Second** item

.center
    This text is _centered_.

.row alignment:{spacebetween}
    ![Image 1](img1.png)

    ![Image 2](img2.png)
    
    ![Image 3](img3.png)
&lt;/code&gt;&lt;/pre&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h1&gt;Getting started&lt;/h1&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;h3&gt;Install script (Linux/macOS)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;curl -fsSL https://raw.githubusercontent.com/quarkdown-labs/get-quarkdown/refs/heads/main/install.sh | sudo env &quot;PATH=$PATH&quot; bash
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Root privileges let the script install Quarkdown into &lt;code&gt;/opt/quarkdown&lt;/code&gt; and its wrapper script into &lt;code&gt;/usr/local/bin/quarkdown&lt;/code&gt;.&lt;br /&gt; If missing, Java 17, Node.js and npm will be installed automatically using the system&#39;s package manager.&lt;/p&gt; 
&lt;p&gt;For more installation options, check out &lt;a href=&quot;https://github.com/quarkdown-labs/get-quarkdown&quot;&gt;get-quarkdown&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Homebrew (Linux/macOS)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;brew install quarkdown-labs/quarkdown/quarkdown
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Install script (Windows)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;irm https://raw.githubusercontent.com/quarkdown-labs/get-quarkdown/refs/heads/main/install.ps1 | iex
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Scoop (Windows)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;scoop bucket add java
scoop bucket add quarkdown https://github.com/quarkdown-labs/scoop-quarkdown
scoop install quarkdown
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;GitHub Actions&lt;/h3&gt; 
&lt;p&gt;See &lt;a href=&quot;https://github.com/quarkdown-labs/setup-quarkdown&quot;&gt;setup-quarkdown&lt;/a&gt; to easily integrate Quarkdown into your GitHub Actions workflows.&lt;/p&gt; 
&lt;h3&gt;Manual installation&lt;/h3&gt; 
&lt;details&gt; 
 &lt;summary&gt;Instructions for manual installation&lt;/summary&gt; 
 &lt;p&gt;Download &lt;code&gt;quarkdown.zip&lt;/code&gt; from the &lt;a href=&quot;https://github.com/iamgio/quarkdown/releases/latest&quot;&gt;latest stable release&lt;/a&gt; and unzip it, or build it with &lt;code&gt;gradlew installDist&lt;/code&gt;.&lt;/p&gt; 
 &lt;p&gt;Optionally, adding &lt;code&gt;&amp;lt;install_dir&amp;gt;/bin&lt;/code&gt; to your &lt;code&gt;PATH&lt;/code&gt; allows you easier access Quarkdown.&lt;/p&gt; 
 &lt;p&gt;Requirements:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Java 17 or higher&lt;/li&gt; 
  &lt;li&gt;(Only for PDF export) Node.js, npm, Puppeteer. See &lt;a href=&quot;https://quarkdown.com/wiki/pdf-export&quot;&gt;&lt;em&gt;PDF export&lt;/em&gt;&lt;/a&gt; for details.&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;Quickstart 🆕&lt;/h2&gt; 
&lt;p&gt;New user? You&#39;ll find &lt;strong&gt;everything you need&lt;/strong&gt; in the &lt;strong&gt;&lt;a href=&quot;https://quarkdown.com/wiki/quickstart&quot;&gt;Quickstart guide&lt;/a&gt;&lt;/strong&gt; to bring life to your first document!&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;Creating a project&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;&lt;code&gt;quarkdown create [directory]&lt;/code&gt;&lt;/strong&gt; will launch the prompt-based project wizard, making it quicker than ever to set up a new Quarkdown project, with all &lt;a href=&quot;https://quarkdown.com/wiki/document-metadata&quot;&gt;metadata&lt;/a&gt; and initial content already present.&lt;/p&gt; 
&lt;p&gt;For more information about the project creator, check out its &lt;a href=&quot;https://quarkdown.com/wiki/cli-project-creator&quot;&gt;wiki page&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Alternatively, you may manually create a &lt;code&gt;.qd&lt;/code&gt; source file and start from there.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;Compiling&lt;/h2&gt; 
&lt;p&gt;Running &lt;strong&gt;&lt;code&gt;quarkdown c file.qd&lt;/code&gt;&lt;/strong&gt; will compile the given file and save the output to file.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;If the project is composed by multiple source files, the target file must be the root one, i.e. the one that includes the other files.&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href=&quot;https://quarkdown.com/wiki/including-other-quarkdown-files&quot;&gt;How to include other files?&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;If you would like to familiarize yourself with Quarkdown instead, &lt;code&gt;quarkdown repl&lt;/code&gt; lets you play with an interactive REPL mode.&lt;/p&gt; 
&lt;h4&gt;Options&lt;/h4&gt; 
&lt;p&gt;The most commonly used options are:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;--preview&lt;/code&gt;&lt;/strong&gt;: enables automatic content reloading after compiling.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;code&gt;-w&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;--watch&lt;/code&gt;&lt;/strong&gt;: recompiles the source every time a file from the source directory is changed.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&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;Combine &lt;code&gt;-p -w&lt;/code&gt; to achieve &lt;em&gt;&lt;strong&gt;live preview&lt;/strong&gt;&lt;/em&gt;!&lt;/p&gt; 
&lt;/div&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;code&gt;--pdf&lt;/code&gt;&lt;/strong&gt;: produces a PDF file. Learn more in the wiki&#39;s &lt;a href=&quot;https://quarkdown.com/wiki/pdf-export&quot;&gt;&lt;em&gt;PDF export&lt;/em&gt;&lt;/a&gt; page.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;For the full list of options, check out the &lt;a href=&quot;https://quarkdown.com/wiki/cli-options&quot;&gt;CLI options&lt;/a&gt; wiki page.&lt;/p&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h2&gt;Mock document&lt;/h2&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img width=&quot;550&quot; src=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/mock-demo.png&quot; alt=&quot;Mock document demo&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Mock&lt;/strong&gt;&lt;/em&gt;, written in Quarkdown, is a comprehensive collection of visual elements offered by the language, making it ideal for exploring and understanding its key features — all while playing and experimenting hands-on with a concrete outcome in the form of pages or slides.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;The document&#39;s source files are available in the &lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/mock&quot;&gt;&lt;code&gt;mock&lt;/code&gt;&lt;/a&gt; directory, and can be compiled via &lt;code&gt;quarkdown c mock/main.qd -p&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;The PDF artifacts generated for all possible theme combinations are available and can be viewed in the &lt;a href=&quot;https://github.com/quarkdown-labs/generated&quot;&gt;&lt;code&gt;generated&lt;/code&gt;&lt;/a&gt; repo.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Contributions are welcome! Please check &lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; to know how contribute via issues or pull requests.&lt;/p&gt; 
&lt;h2&gt;Sponsors&lt;/h2&gt; 
&lt;p&gt;A special thanks to all the sponsors who &lt;a href=&quot;https://github.com/sponsors/iamgio&quot;&gt;supported this project&lt;/a&gt;!&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://falconer.com&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/sponsors/falconer.jpeg&quot; alt=&quot;Falconer&quot; width=&quot;350&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/RayOffiah&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/77050471?v=4&quot; alt=&quot;RayOffiah&quot; width=&quot;90&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/vitto4&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/128498605?v=4&quot; alt=&quot;vitto4&quot; width=&quot;60&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/LunaBluee&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/145209701?v=4&quot; alt=&quot;LunaBluee&quot; width=&quot;35&quot; /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href=&quot;https://github.com/dcopia&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/162327812?v=4&quot; alt=&quot;dcopia&quot; width=&quot;35&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/Pallandos&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/146179143?v=4&quot; alt=&quot;Pallandos&quot; width=&quot;35&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/imogenxingren&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/36161957?v=4&quot; alt=&quot;imogenxingren&quot; width=&quot;35&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/serkonda7&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/40118727?v=4&quot; alt=&quot;serkonda7&quot; width=&quot;35&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;Concept&lt;/h2&gt; 
&lt;p&gt;The logo resembles the original &lt;a href=&quot;https://github.com/dcurtis/markdown-mark&quot;&gt;Markdown icon&lt;/a&gt;, with focus on Quarkdown&#39;s completeness, richness of features and customization options, emphasized by the revolving arrow all around the sphere.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/ticon-light.svg&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/ticon-dark.svg&quot; /&gt; 
  &lt;img alt=&quot;Quarkdown icon&quot; src=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/ticon-dark.svg?sanitize=true&quot; /&gt; 
 &lt;/picture&gt; &lt;/p&gt; 
&lt;p&gt;What could be mistaken for a planet is actually a &lt;strong&gt;quark&lt;/strong&gt; or, more specifically, a &lt;strong&gt;down quark&lt;/strong&gt;, an elementary particle that is a major constituent of matter: they give life to every complex structure we know of, while also being one of the lightest objects in existence.&lt;/p&gt; 
&lt;p&gt;This is, indeed, the concept &lt;strong&gt;Quarkdown&lt;/strong&gt; is built upon.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;By default, Quarkdown and its modules are licensed under &lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/LICENSE&quot;&gt;GNU GPLv3&lt;/a&gt;, except for modules that include their own &lt;code&gt;LICENSE&lt;/code&gt; file: the CLI (&lt;code&gt;quarkdown-cli&lt;/code&gt;) and Language Server (&lt;code&gt;quarkdown-lsp&lt;/code&gt;) modules and binaries are licensed under GNU AGPLv3.&lt;/p&gt; 
&lt;h2&gt;Footnotes&lt;/h2&gt; 
&lt;hr class=&quot;footnotes-sep&quot; /&gt; 
&lt;section class=&quot;footnotes&quot;&gt; 
 &lt;ol class=&quot;footnotes-list&quot;&gt; 
  &lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The ability to customize the properties of the document and of its output artifact through the language itself. &lt;a href=&quot;https://raw.githubusercontent.com/iamgio/quarkdown/main/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;/ol&gt; 
&lt;/section&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/750550657/a2ab3d4f-3acb-4934-87df-90a9596cbfe5" medium="image" />
      
    </item>
    
    <item>
      <title>breezy-weather/breezy-weather</title>
      <link>https://github.com/breezy-weather/breezy-weather</link>
      <description>&lt;p&gt;A feature-rich weather app with good visualizations and more than 50 sources.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;br /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/app/src/res_breezy/mipmap-xxxhdpi/ic_launcher_round.webp&quot; alt=&quot;Logo&quot; /&gt; 
&lt;/div&gt; 
&lt;h1 align=&quot;center&quot;&gt;Breezy Weather&lt;/h1&gt; 
&lt;br /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img alt=&quot;API 21+&quot; src=&quot;https://img.shields.io/badge/Api%2021+-50f270?logo=android&amp;amp;logoColor=black&amp;amp;style=for-the-badge&quot; /&gt; 
 &lt;a href=&quot;https://kotlinlang.org/&quot;&gt; &lt;img alt=&quot;Kotlin&quot; src=&quot;https://img.shields.io/badge/Kotlin-a503fc?logo=kotlin&amp;amp;logoColor=white&amp;amp;style=for-the-badge&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://developer.android.com/compose&quot;&gt; &lt;img alt=&quot;Jetpack Compose&quot; src=&quot;https://img.shields.io/static/v1?style=for-the-badge&amp;amp;message=Jetpack+Compose&amp;amp;color=4285F4&amp;amp;logo=Jetpack+Compose&amp;amp;logoColor=FFFFFF&amp;amp;label=&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://m3.material.io/&quot;&gt; &lt;img alt=&quot;Material 3 Expressive&quot; src=&quot;https://custom-icon-badges.demolab.com/badge/m3%20expressive-lightblue?style=for-the-badge&amp;amp;logoColor=333&amp;amp;logo=material-you&quot; /&gt; &lt;/a&gt; 
 &lt;br /&gt; 
 &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/LICENSE&quot;&gt; &lt;img src=&quot;https://img.shields.io/github/license/breezy-weather/breezy-weather?style=for-the-badge&quot; alt=&quot;License LGPL-3.0&quot; /&gt; &lt;/a&gt; 
 &lt;img src=&quot;https://img.shields.io/github/languages/code-size/breezy-weather/breezy-weather?style=for-the-badge&quot; alt=&quot;GitHub code size in bytes&quot; /&gt; 
 &lt;br /&gt;
 &lt;br /&gt; 
 &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/releases&quot;&gt; &lt;img src=&quot;https://img.shields.io/github/v/release/breezy-weather/breezy-weather?color=purple&amp;amp;include_prereleases&amp;amp;logo=github&amp;amp;style=for-the-badge&quot; alt=&quot;Download from GitHub&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://apt.izzysoft.de/fdroid/index/apk/org.breezyweather/&quot;&gt; &lt;img src=&quot;https://img.shields.io/endpoint?url=https://apt.izzysoft.de/fdroid/api/v1/shield/org.breezyweather?color=purple&amp;amp;include_prereleases&amp;amp;logo=FDROID&amp;amp;style=for-the-badge&quot; alt=&quot;Download from IzzyOnDroid repo&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://f-droid.org/packages/org.breezyweather/&quot;&gt; &lt;img src=&quot;https://img.shields.io/f-droid/v/org.breezyweather?color=purple&amp;amp;include_prereleases&amp;amp;logo=FDROID&amp;amp;style=for-the-badge&quot; alt=&quot;Download from F-Droid default repo&quot; /&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h4 align=&quot;center&quot;&gt;Breezy Weather is a feature-rich free and open source Material 3 Expressive weather app with well-though-out visualizations, supporting forecast, observations, nowcasting, air quality, pollen, alerts, from more than 50 weather sources.&lt;/h4&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;⬇️ Download&lt;/h1&gt; 
 &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/releases&quot;&gt; &lt;img src=&quot;https://user-images.githubusercontent.com/69304392/148696068-0cfea65d-b18f-4685-82b5-329a330b1c0d.png&quot; alt=&quot;Get it on GitHub&quot; align=&quot;center&quot; height=&quot;80&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/INSTALL.md#obtainium&quot;&gt; &lt;img src=&quot;https://github.com/ImranR98/Obtainium/raw/main/assets/graphics/badge_obtainium.png&quot; alt=&quot;Get it on Obtainium&quot; align=&quot;center&quot; height=&quot;54&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/INSTALL.md#f-droid-client&quot;&gt; &lt;img src=&quot;https://f-droid.org/badge/get-it-on.png&quot; alt=&quot;Get it on F-Droid&quot; align=&quot;center&quot; height=&quot;80&quot; /&gt;&lt;/a&gt; 
&lt;/div&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/INSTALL.md&quot;&gt;&lt;strong&gt;All installation methods&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;strong&gt;SHA-256 hash of the signing certificate:&lt;/strong&gt; 29d435f70aa9aec3c1faff7f7ffa6e15785088d87f06ecfcab9c3cc62dc269d8&lt;br /&gt; SHA-256 checksums are also provided per file on the &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/releases&quot;&gt;GitHub releases page&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/01-main-header-light.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/02-main-header-dark.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/03-main-blocks-1.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/04-main-blocks-2.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/05-settings.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/06-sources.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/fastlane/metadata/android/en-US/images/phoneScreenshots/07-details.png&quot; alt=&quot;&quot; style=&quot;width: 300px&quot; /&gt; 
&lt;/div&gt; 
&lt;h1&gt;✨ Features&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;🌤️ Weather data&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Daily and hourly forecasts up to 16 days&lt;/li&gt; 
   &lt;li&gt;Precipitation in the next hour&lt;/li&gt; 
   &lt;li&gt;Severe weather and precipitation alerts&lt;/li&gt; 
   &lt;li&gt;Temperature / Feels like temperature / Normals&lt;/li&gt; 
   &lt;li&gt;Precipitation&lt;/li&gt; 
   &lt;li&gt;Wind&lt;/li&gt; 
   &lt;li&gt;Air quality&lt;/li&gt; 
   &lt;li&gt;Pollen &amp;amp; Mold&lt;/li&gt; 
   &lt;li&gt;Humidity&lt;/li&gt; 
   &lt;li&gt;UV index&lt;/li&gt; 
   &lt;li&gt;Visibility&lt;/li&gt; 
   &lt;li&gt;Pressure&lt;/li&gt; 
   &lt;li&gt;Sun&lt;/li&gt; 
   &lt;li&gt;Moon&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;📊 Visualization&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Detailed 24-hour charts&lt;/li&gt; 
   &lt;li&gt;Material 3 Expressive blocks&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;🏭 More than 50 weather sources supported (&lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/docs/SOURCES.md&quot;&gt;full list&lt;/a&gt;)&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;🧩 Large selection of widgets&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;🖼️ Live wallpaper&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;📦 Custom icon packs&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://github.com/breezy-weather/breezy-weather-icon-packs/raw/main/README.md&quot;&gt;Geometric Weather icon packs&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Chronus Weather icon packs&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;🌙 Automatic dark mode&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;🔁 Opt-in data sharing with other apps (such as Gadgetbridge)&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; 
  &lt;details&gt;
   &lt;summary&gt;🚹 Accessibility&lt;/summary&gt; 
   &lt;ul&gt; 
    &lt;li&gt;Localization 
     &lt;ul&gt; 
      &lt;li&gt;Number formatting (different numeral systems, decimal separator, thousand separator)&lt;/li&gt; 
      &lt;li&gt;Unit formatting&lt;/li&gt; 
      &lt;li&gt;Alternate calendar&lt;/li&gt; 
     &lt;/ul&gt; &lt;/li&gt; 
    &lt;li&gt;Readability 
     &lt;ul&gt; 
      &lt;li&gt;Good content descriptions for screen readers&lt;/li&gt; 
      &lt;li&gt;Navigation with screen readers: most things should work, features depending on drag &amp;amp; drop not yet supported&lt;/li&gt; 
      &lt;li&gt;Custom display settings: basic support&lt;/li&gt; 
     &lt;/ul&gt; &lt;/li&gt; 
   &lt;/ul&gt; 
  &lt;/details&gt;&lt;/li&gt; 
&lt;/ul&gt;  
&lt;ul&gt; 
 &lt;li&gt; 
  &lt;details&gt;
   &lt;summary&gt;🆓 Free and Open Source&lt;/summary&gt; 
   &lt;ul&gt; 
    &lt;li&gt;No proprietary blobs/dependencies&lt;/li&gt; 
    &lt;li&gt;Releases generated by GitHub actions, guaranteeing it matches the source code&lt;/li&gt; 
    &lt;li&gt;Fully works with Open-Meteo (FOSS source)&lt;/li&gt; 
    &lt;li&gt;Separate flavor with only sources hosted on FOSS networks&lt;/li&gt; 
   &lt;/ul&gt; 
  &lt;/details&gt;&lt;/li&gt; 
&lt;/ul&gt;  
&lt;ul&gt; 
 &lt;li&gt; 
  &lt;details&gt;
   &lt;summary&gt;🛡️ Privacy-friendly&lt;/summary&gt; 
   &lt;ul&gt; 
    &lt;li&gt;No personal data collected by the app (&lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/PRIVACY.md&quot;&gt;link to app privacy policy&lt;/a&gt;)&lt;/li&gt; 
    &lt;li&gt;Multiple sources are available, with links to their privacy policies for transparency&lt;/li&gt; 
    &lt;li&gt;Current location is optional and not added by default&lt;/li&gt; 
    &lt;li&gt;If using current location, an IP location service can be used instead of GPS to send less accurate coordinates to weather source&lt;/li&gt; 
    &lt;li&gt;No trackers/automatic crash reporters&lt;/li&gt; 
   &lt;/ul&gt; 
  &lt;/details&gt;&lt;/li&gt; 
&lt;/ul&gt;  
&lt;h1&gt;🛟 Help&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/HELP.md&quot;&gt;Frequently Asked Questions / Help&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/docs/HOMEPAGE.md&quot;&gt;Main screen explanations&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/docs/SOURCES.md&quot;&gt;Weather sources comparison&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;🤝 Contribute&lt;/h1&gt; 
&lt;p&gt;Pull requests are welcome. You can have a look at &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/issues?q=is%3Aissue+is%3Aopen+label%3A%22Open+to+contributions%22&quot;&gt;issues opened to contributions&lt;/a&gt;. For other changes, please open an issue first to discuss what you would like to change.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/CONTRIBUTE.md&quot;&gt;Contribution guide (includes a guide to create a new weather source)&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Features currently being worked on by a contributor&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/discussions/2089&quot;&gt;Announcement&lt;/a&gt; - Make Breezy weather data available through a ContentProvider. Landed in v6.1.0. Currently in an experimental phase; feedback appreciated&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/issues/10&quot;&gt;#10&lt;/a&gt; - “Add location” page needs a new design, in the spirit of Google Maps where you can select location points on the map, or search manually - No mockup done yet&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Features lacking an active contributor&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/issues/937&quot;&gt;#937&lt;/a&gt; - Widget overhaul (prerequisite for any new widget improvement) - Some mockups were done but no one is working on it anymore&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Features that will not be implemented&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Paid-only sources, too limited free-tier, or free-tier that requires privacy-invasive information (credit card info, phone number, etc)&lt;/li&gt; 
 &lt;li&gt;Radar; &lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/docs/RADAR.md&quot;&gt;please check out this document for alternatives&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Adding &lt;code&gt;standard&lt;/code&gt; flavor or non-free sources to the F-Droid default repo: please use the &lt;code&gt;standard&lt;/code&gt; flavor from a different store/source instead&lt;/li&gt; 
 &lt;li&gt;Changes to the &lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/docs/UPDATES.md&quot;&gt;background updates process&lt;/a&gt;, including but not limited: options for refreshing less than every 30 minutes, every time you open the app, every time you tap on widget, every time you unlock your phone&lt;/li&gt; 
 &lt;li&gt;“Circular sky” interface: you can set a fixed light/dark background globally from Main screen settings instead.&lt;/li&gt; 
 &lt;li&gt;Publish to Google Play Store: please &lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/INSTALL.md&quot;&gt;check alternatives&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Allow different flavors to be installed in parallel&lt;/li&gt; 
 &lt;li&gt;Implement features that are no longer available in latest Android versions&lt;/li&gt; 
 &lt;li&gt;Backport features/fixes from latest Android versions to older Android versions&lt;/li&gt; 
 &lt;li&gt;Donations: if you have extra money to spare, consider &lt;a href=&quot;https://github.com/sponsors/open-meteo&quot;&gt;donating to Open-Meteo&lt;/a&gt; to support infrastructure costs and future developments (we currently lack a libre and gratis worldwide alternative for the following features: &lt;a href=&quot;https://github.com/open-meteo/geocoding-api/issues/6&quot;&gt;Reverse geocoding&lt;/a&gt;, &lt;a href=&quot;https://github.com/open-meteo/open-meteo/issues/351&quot;&gt;Alerts&lt;/a&gt;, &lt;a href=&quot;https://github.com/open-meteo/open-meteo/issues/361&quot;&gt;Normals&lt;/a&gt;)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;🌍 Translations&lt;/h1&gt; 
&lt;p&gt;Translation is done externally &lt;a href=&quot;https://hosted.weblate.org/projects/breezy-weather/breezy-weather-android/#information&quot;&gt;on Weblate&lt;/a&gt;. Please read carefully project instructions if you want to help.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://hosted.weblate.org/projects/breezy-weather/breezy-weather-android/#information&quot;&gt;&lt;img src=&quot;https://hosted.weblate.org/widget/breezy-weather/breezy-weather-android/multi-auto.svg?sanitize=true&quot; alt=&quot;Translation progress report&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;English (and regional variants) and French translations are maintained by repo maintainers, but they are open to proofreading/improvements. You will need to make a pull request, as we didn’t find a way to make these languages in suggestion-only mode in Weblate (let us know if you find anything).&lt;/p&gt; 
&lt;p&gt;For unit formatting, we use &lt;a href=&quot;https://www.unicode.org/cldr/charts/47/summary/root.html&quot;&gt;Unicode data&lt;/a&gt; as much as possible. If you believe there is an error, please &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/discussions/categories/general&quot;&gt;open a discussion&lt;/a&gt; with evidences that the changes you suggest is the recommendation for your language.&lt;/p&gt; 
&lt;h1&gt;✉️ Contact us&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;If you’d like to report a bug or suggest a new feature, GitHub discussions or issues are best for organization.&lt;/li&gt; 
 &lt;li&gt;We’ve also created a Matrix/Element space with a number of different channels for more general discussion: &lt;a href=&quot;https://matrix.to/#/#breezy-weather-space:matrix.org&quot;&gt;&lt;code&gt;#breezy-weather-space:matrix.org&lt;/code&gt;&lt;/a&gt;. 
  &lt;ul&gt; 
   &lt;li&gt;If you are not comfortable writing a GitHub discussion/issue in English, you can ask on the channel if someone can help you in your language. 
    &lt;ul&gt; 
     &lt;li&gt;We also have a dedicated help channel in French: &lt;a href=&quot;https://matrix.to/#/#breezy-weather-francais:matrix.org&quot;&gt;&lt;code&gt;#breezy-weather-francais:matrix.org&lt;/code&gt;&lt;/a&gt;&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;If you’d prefer a direct channel link instead of a space link, here’s the main Breezy Weather Matrix channel: &lt;a href=&quot;https://matrix.to/#/#breezy-weather:matrix.org&quot;&gt;&lt;code&gt;#breezy-weather:matrix.org&lt;/code&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;📜 License&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/breezy-weather/breezy-weather/main/LICENSE&quot;&gt;GNU Lesser General Public License v3.0&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;This License does not grant any rights in the trademarks, service marks, or logos of any Contributor.&lt;/li&gt; 
 &lt;li&gt;Misrepresentation of the origin of that material is prohibited, and modified versions of such material must be marked in reasonable ways as different from the original version.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Before creating a fork, check if the intent action &lt;code&gt;nodomain.freeyourgadget.gadgetbridge.ACTION_GENERIC_WEATHER&lt;/code&gt; can cover your need (for example, you want to re-use our weather data in your own customized widget). It can be enabled from Settings &amp;gt; Widgets &amp;amp; Live Wallpaper &amp;gt; Data sharing. You can also &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/discussions/2089&quot;&gt;help testing our &lt;code&gt;ContentProvider&lt;/code&gt; exposing the full weather data of Breezy Weather&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Otherwise, remember to:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Respect the project’s LICENSE&lt;/li&gt; 
 &lt;li&gt;Avoid confusion with the Breezy Weather app: 
  &lt;ul&gt; 
   &lt;li&gt;Do NOT use the &lt;code&gt;breezy&lt;/code&gt; flag when compiling releases you plan to distribute&lt;/li&gt; 
   &lt;li&gt;Change the app name in &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/app/src/res_fork/values/strings.xml&quot;&gt;&lt;code&gt;res_fork/values/strings.xml&lt;/code&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;Change the app icons in the &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/app/src/res_fork&quot;&gt;&lt;code&gt;res_fork&lt;/code&gt;&lt;/a&gt; folders&lt;/li&gt; 
   &lt;li&gt;Avoid installation conflicts: change the &lt;code&gt;applicationId&lt;/code&gt; in &lt;a href=&quot;https://github.com/breezy-weather/breezy-weather/raw/main/app/build.gradle.kts#L25&quot;&gt;&lt;code&gt;build.gradle.kts&lt;/code&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/d79a56d865013b6fc411034ec9942497be9bc91159b01e40e85578e3490491fe/breezy-weather/breezy-weather" medium="image" />
      
    </item>
    
    <item>
      <title>butzist/ActivityLauncher</title>
      <link>https://github.com/butzist/ActivityLauncher</link>
      <description>&lt;p&gt;Activity launcher creates shortcuts for any installed app and hidden activities to launch them with ease&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/butzist/ActivityLauncher/actions/workflows/android-master.yml&quot;&gt;&lt;img src=&quot;https://github.com/butzist/ActivityLauncher/actions/workflows/android-master.yml/badge.svg?sanitize=true&quot; alt=&quot;Debug Build&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;Activity Launcher&lt;/h1&gt; 
&lt;p&gt;Launches hidden activities and creates shortcuts for installed apps&lt;/p&gt; 
&lt;a href=&quot;https://f-droid.org/packages/de.szalkowski.activitylauncher/&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://f-droid.org/badge/get-it-on.png&quot; alt=&quot;Get it on F-Droid&quot; height=&quot;80&quot; /&gt;&lt;/a&gt; 
&lt;a href=&quot;https://play.google.com/store/apps/details?id=de.szalkowski.activitylauncher.pro&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png&quot; alt=&quot;Get it on Google Play&quot; height=&quot;80&quot; /&gt;&lt;/a&gt; 
&lt;h2&gt;Shortcuts not created&lt;/h2&gt; 
&lt;p&gt;In case the shortcuts are not created in your home screen, make sure Activity Launcher has the &quot;Home screen shortcuts&quot; permission.&lt;/p&gt; 
&lt;p&gt;Click on Settings -&amp;gt; Apps -&amp;gt; Manage apps -&amp;gt; Activity Launcher -&amp;gt; Other permissions -&amp;gt; Home screen shortcuts.&lt;/p&gt; 
&lt;p&gt;See &lt;a href=&quot;https://github.com/butzist/ActivityLauncher/issues/267&quot;&gt;#267&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Translations&lt;/h2&gt; 
&lt;p&gt;Translations can be updated via Pull Requests on GitHub. Feel free to contribute by submitting PRs to improve or add translations.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/db0382629d56b00eb7c39af025e7baff7b5524d7031d842e5499e9ca6d54d495/butzist/ActivityLauncher" medium="image" />
      
    </item>
    
    <item>
      <title>SagerNet/sing-box-for-android</title>
      <link>https://github.com/SagerNet/sing-box-for-android</link>
      <description>&lt;p&gt;Experimental Android client for sing-box&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;SFA&lt;/h1&gt; 
&lt;p&gt;Experimental Android client for sing-box, the universal proxy platform.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://sing-box.sagernet.org/installation/clients/sfa/&quot;&gt;https://sing-box.sagernet.org/installation/clients/sfa/&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;Copyright (C) 2022 by nekohasekai &amp;lt;contact-sagernet@sekai.icu&amp;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.

You should have received a copy of the GNU General Public License
along with this program. If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.

In addition, no derivative work may use the name or imply association
with this application without prior consent.
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Under the license, that forks of the app are not allowed to be listed on F-Droid or other app stores under the original name.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/7b1c5f4f9ad6eaf19f41d594c4c70b2097b4d935b950136e7c0ee6f5efe4c7a1/SagerNet/sing-box-for-android" medium="image" />
      
    </item>
    
    <item>
      <title>LanRhyme/MicYou</title>
      <link>https://github.com/LanRhyme/MicYou</link>
      <description>&lt;p&gt;MicYou is a powerful tool that turns your Android device into a high-quality wireless microphone for your PC.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;MicYou&lt;/h1&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/img/app_icon.png&quot; width=&quot;128&quot; height=&quot;128&quot; /&gt; 
 &lt;br /&gt; 
 &lt;br /&gt; 
 &lt;p&gt;&lt;a href=&quot;https://hellogithub.com/repository/LanRhyme/MicYou&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=14f1a7bc70dc4b3daa2b4668200286e3&amp;amp;claim_uid=9B3umTywnclH56q&amp;amp;theme=neutral&quot; alt=&quot;Featured｜HelloGitHub&quot; style=&quot;width: 250px; height: 54px;&quot; width=&quot;250&quot; height=&quot;54&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/25451&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/25451&quot; alt=&quot;LanRhyme%2FMicYou | Trendshift&quot; style=&quot;width: 250px; height: 55px;&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;br /&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/README_zh-cn.md&quot;&gt;简体中文&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/README_zh-tw.md&quot;&gt;繁體中文&lt;/a&gt; | &lt;b&gt;English&lt;/b&gt;&lt;/p&gt; 
 &lt;a href=&quot;https://aur.archlinux.org/packages/micyou-bin&quot;&gt; &lt;img alt=&quot;AUR Version&quot; src=&quot;https://img.shields.io/aur/version/micyou-bin?logo=archlinux&amp;amp;label=micyou-bin&quot; /&gt;&lt;/a&gt; 
 &lt;a href=&quot;https://qm.qq.com/q/V16hPpWPKO&quot;&gt; &lt;img alt=&quot;QQ&quot; src=&quot;https://img.shields.io/badge/QQ-995452107-12B7F5?style=flat&amp;amp;logo=qq&amp;amp;logoColor=white&quot; /&gt;&lt;/a&gt;
 &lt;a&gt; &lt;/a&gt;
 &lt;a href=&quot;https://t.me/MicYouChannel&quot;&gt; &lt;img alt=&quot;TG&quot; src=&quot;https://img.shields.io/badge/Telegram-@MicYouChannel-2CA5E0?style=flat&amp;amp;logo=telegram&amp;amp;logoColor=white&quot; /&gt;&lt;/a&gt; 
 &lt;h6&gt;Support Me&lt;/h6&gt; 
 &lt;a href=&quot;https://afdian.com/a/LanRhyme&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/afdian-@LanRhyme-946ce6?style=for-the-badge&amp;amp;logo=afdian&amp;amp;logoColor=white&quot; alt=&quot;afdian&quot; /&gt;&lt;/a&gt; 
 &lt;p&gt;MicYou is a powerful tool that turns your Android device into a high-quality microphone for your PC. Built with Kotlin Multiplatform and Jetpack Compose/Material 3.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Multiple Connection Modes&lt;/strong&gt;: Support for Wi-Fi and USB (ADB/AOA).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Audio Processing&lt;/strong&gt;: Built-in Noise Suppression, Auto Gain Control (AGC), and Dereverberation.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Cross-Platform&lt;/strong&gt;: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Android Client&lt;/strong&gt;: Modern Material 3 interface, dark/light theme support.&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Desktop Server&lt;/strong&gt;: Receive audio on Windows/Linux/macOS.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Virtual Microphone&lt;/strong&gt;: Works seamlessly with VB-Cable/BlackHole to act as a system microphone input.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Customizable&lt;/strong&gt;: Adjust sample rate, channel count, and audio format.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Screenshots&lt;/h2&gt; 
&lt;h3&gt;Android App&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Main Screen&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Settings&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/LanRhyme/MicYou/master/img/android_screenshot_main.png&quot; width=&quot;300&quot; /&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/img/android_screenshot_settings.png&quot; width=&quot;300&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Desktop App&lt;/h3&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/img/desktop_screenshot.png&quot; width=&quot;600&quot; /&gt; 
&lt;h2&gt;Getting Started&lt;/h2&gt; 
&lt;p&gt;Quick start and platform-specific setup instructions are now in the FAQ:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/docs/FAQ.md#quick-start&quot;&gt;Quick Start&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/docs/FAQ.md#faq&quot;&gt;Common issues&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;We welcome contributions of all kinds! Whether you want to report a bug, suggest a feature, help with translations, or contribute code, please check our &lt;a href=&quot;https://raw.githubusercontent.com/LanRhyme/MicYou/master/CONTRIBUTING.md&quot;&gt;Contributing Guidelines&lt;/a&gt; to get started.&lt;/p&gt; 
&lt;h2&gt;Contributors&lt;/h2&gt; 
&lt;a href=&quot;https://github.com/LanRhyme/MicYou/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=LanRhyme/MicYou&quot; /&gt; &lt;/a&gt; 
&lt;p&gt;Made with &lt;a href=&quot;https://contrib.rocks&quot;&gt;contrib.rocks&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://www.star-history.com/#LanRhyme/MicYou&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/svg?repos=LanRhyme/MicYou&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/svg?repos=LanRhyme/MicYou&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/svg?repos=LanRhyme/MicYou&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;h2&gt;Acknowledgments&lt;/h2&gt; 
&lt;p&gt;Special thanks to &lt;a href=&quot;https://mirrors.cqu.edu.cn/&quot;&gt;CQU Open Source Software Mirror&lt;/a&gt; for providing a mirror download service for this project.&lt;/p&gt; 
&lt;p&gt;Special thanks to &lt;a href=&quot;https://mirrorchyan.com/en/get-start&quot;&gt;MirrorChyan&lt;/a&gt; for providing a high-speed mirror download service for ths project.&lt;/p&gt; 
&lt;p&gt;Special thanks to all the &lt;a href=&quot;https://github.com/LanRhyme/MicYou/graphs/contributors&quot;&gt;contributors&lt;/a&gt; for helping to make the project even better.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/1f562ffe9bf41512e85da67dfb63bc39de9f47ed1ade985a1898aec65d5cf837/LanRhyme/MicYou" medium="image" />
      
    </item>
    
    <item>
      <title>keiyoushi/extensions-source</title>
      <link>https://github.com/keiyoushi/extensions-source</link>
      <description>&lt;p&gt;Source code of extensions in https://github.com/keiyoushi/extensions&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Keiyoushi Extensions&lt;/h1&gt; 
&lt;h3&gt;Please give the repo a ⭐&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Build&lt;/th&gt; 
   &lt;th&gt;Need Help?&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/keiyoushi/extensions-source/actions/workflows/build_push.yml&quot;&gt;&lt;img src=&quot;https://github.com/keiyoushi/extensions-source/actions/workflows/build_push.yml/badge.svg?sanitize=true&quot; alt=&quot;CI&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://discord.gg/3FbCpdKbdY&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/1193460528052453448.svg?label=discord&amp;amp;labelColor=7289da&amp;amp;color=2c2f33&amp;amp;style=flat&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Usage&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;If you are new to repository/extensions, please read the &lt;a href=&quot;https://keiyoushi.github.io/docs/guides/getting-started#adding-the-extension-repo&quot;&gt;Keiyoushi Getting Started guide&lt;/a&gt; first.&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;You can add our repo by visiting the &lt;a href=&quot;https://keiyoushi.github.io/add-repo&quot;&gt;Keiyoushi Website&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Otherwise, copy &amp;amp; paste the following URL: &lt;a href=&quot;https://raw.githubusercontent.com/keiyoushi/extensions/repo/index.min.json&quot;&gt;https://raw.githubusercontent.com/keiyoushi/extensions/repo/index.min.json&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Requests&lt;/h2&gt; 
&lt;p&gt;To request a new source or bug fix, &lt;a href=&quot;https://github.com/keiyoushi/extensions-source/issues/new/choose&quot;&gt;create an issue&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Please note that creating an issue does not mean that the source will be added or fixed in a timely fashion, because the work is volunteer-based. Some sources may also be impossible to do or prohibitively difficult to maintain.&lt;/p&gt; 
&lt;p&gt;If you would like to see a request fulfilled and have the necessary skills to do so, consider contributing! Issues are up-for-grabs for any developer if there is no assigned user already.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Contributions are welcome!&lt;/p&gt; 
&lt;p&gt;Check out the repo&#39;s &lt;a href=&quot;https://github.com/keiyoushi/extensions-source/issues&quot;&gt;issue backlog&lt;/a&gt; for source requests and bug reports.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;Copyright 2015 Javier Tomás

Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Disclaimer&lt;/h2&gt; 
&lt;p&gt;This project does not have any affiliation with the content providers available.&lt;/p&gt; 
&lt;p&gt;This project is not affiliated with Mihon/Tachiyomi. Don&#39;t ask for help about these extensions at the official support means of Mihon/Tachiyomi. All credits to the codebase goes to the original contributors.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/6d17376c28f588b36ca89228ad50ab6a40a4e11e1d74e293cb2e01a77427d8a1/keiyoushi/extensions-source" medium="image" />
      
    </item>
    
    <item>
      <title>JetBrains/kotlin</title>
      <link>https://github.com/JetBrains/kotlin</link>
      <description>&lt;p&gt;The Kotlin Programming Language.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub&quot;&gt;&lt;img src=&quot;https://jb.gg/badges/official.svg?sanitize=true&quot; alt=&quot;official project&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://teamcity.jetbrains.com/buildConfiguration/Kotlin_KotlinPublic_Compiler?branch=%3Cdefault%3E&amp;amp;buildTypeTab=overview&amp;amp;mode=builds&quot;&gt;&lt;img src=&quot;https://img.shields.io/teamcity/http/teamcity.jetbrains.com/s/Kotlin_KotlinPublic_Compiler.svg?sanitize=true&quot; alt=&quot;TeamCity (simple build status)&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jetbrains.kotlin%22&quot;&gt;&lt;img src=&quot;https://img.shields.io/maven-central/v/org.jetbrains.kotlin/kotlin-maven-plugin.svg?sanitize=true&quot; alt=&quot;Maven Central&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.apache.org/licenses/LICENSE-2.0&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat&quot; alt=&quot;GitHub license&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://ge.jetbrains.com/scans?search.rootProjectNames=Kotlin&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&amp;amp;labelColor=02303A&quot; alt=&quot;Revved up by Develocity&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;Kotlin Programming Language&lt;/h1&gt; 
&lt;p&gt;Welcome to &lt;a href=&quot;https://kotlinlang.org/&quot;&gt;Kotlin&lt;/a&gt;!&lt;br /&gt; Kotlin is a concise multiplatform language developed by &lt;a href=&quot;https://www.jetbrains.com/&quot;&gt;JetBrains&lt;/a&gt; and &lt;a href=&quot;https://kotlinlang.org/docs/contribute.html&quot;&gt;contributors&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Some handy links:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/&quot;&gt;Kotlin Site&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/docs/tutorials/getting-started.html&quot;&gt;Getting Started Guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://play.kotlinlang.org/&quot;&gt;Try Kotlin&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/api/latest/jvm/stdlib/index.html&quot;&gt;Kotlin Standard Library&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://youtrack.jetbrains.com/issues/KT&quot;&gt;Issue Tracker&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCP7uiEZIqci43m22KDl0sNw&quot;&gt;Kotlin YouTube Channel&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://discuss.kotlinlang.org/&quot;&gt;Forum&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://blog.jetbrains.com/kotlin/&quot;&gt;Kotlin Blog&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCP7uiEZIqci43m22KDl0sNw&quot;&gt;Subscribe to Kotlin YouTube channel&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://twitter.com/kotlin&quot;&gt;Follow Kotlin on Twitter&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://slack.kotlinlang.org/&quot;&gt;Public Slack channel&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://teamcity.jetbrains.com/project.html?tab=projectOverview&amp;amp;projectId=Kotlin&quot;&gt;TeamCity CI build&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinfoundation.org/&quot;&gt;Kotlin Foundation&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Kotlin Multiplatform capabilities&lt;/h2&gt; 
&lt;p&gt;Support for multiplatform programming is one of Kotlin’s key benefits. It reduces time spent writing and maintaining the same code for &lt;a href=&quot;https://kotlinlang.org/docs/reference/mpp-supported-platforms.html&quot;&gt;different platforms&lt;/a&gt; while retaining the flexibility and benefits of native programming.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/kotlin-multiplatform/&quot;&gt;Kotlin Multiplatform&lt;/a&gt; and &lt;a href=&quot;https://www.jetbrains.com/compose-multiplatform/&quot;&gt;Compose Multiplatform&lt;/a&gt; for sharing business logic and UI between Android, iOS, desktop, and web.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html&quot;&gt;Get started with Kotlin Multiplatform&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/docs/reference/multiplatform.html&quot;&gt;Kotlin Multiplatform Benefits&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/docs/reference/mpp-share-on-platforms.html#share-code-on-all-platforms&quot;&gt;Share code on all platforms&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/docs/reference/mpp-share-on-platforms.html#share-code-on-similar-platforms&quot;&gt;Share code on similar platforms&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Editing Kotlin&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/docs/tutorials/getting-started.html&quot;&gt;Kotlin IntelliJ IDEA Plugin&lt;/a&gt; (&lt;a href=&quot;https://github.com/JetBrains/intellij-community/tree/master/plugins/kotlin&quot;&gt;source code&lt;/a&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kotlinlang.org/docs/tutorials/getting-started-eclipse.html&quot;&gt;Kotlin Eclipse Plugin&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/vkostyukov/kotlin-sublime-package&quot;&gt;Kotlin Sublime Text Package&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Build environment requirements&lt;/h2&gt; 
&lt;p&gt;This repository is using &lt;a href=&quot;https://docs.gradle.org/current/userguide/toolchains.html&quot;&gt;Gradle toolchains&lt;/a&gt; feature to select and auto-provision required JDKs from &lt;a href=&quot;https://adoptium.net&quot;&gt;Eclipse Adoptium&lt;/a&gt; project.&lt;/p&gt; 
&lt;p&gt;Alternatively, it is still possible to only provide required JDKs via environment variables (see &lt;a href=&quot;https://raw.githubusercontent.com/JetBrains/kotlin/master/gradle.properties#L5&quot;&gt;gradle.properties&lt;/a&gt; for supported variable names). To ensure Gradle uses only JDKs from environmental variables - disable Gradle toolchain auto-detection by passing &lt;code&gt;-Porg.gradle.java.installations.auto-detect=false&lt;/code&gt; option (or put it into &lt;code&gt;$GRADLE_USER_HOME/gradle.properties&lt;/code&gt;).&lt;/p&gt; 
&lt;p&gt;On Windows you might need to add long paths setting to the repo:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git config core.longpaths true 
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Building&lt;/h2&gt; 
&lt;p&gt;The project is built with Gradle. Run Gradle to build the project and to run the tests using the following command on Unix/macOS:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;./gradlew &amp;lt;tasks-and-options&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;or the following command on Windows:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;gradlew &amp;lt;tasks-and-options&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;On the first project configuration gradle will download and setup the dependencies on:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;intellij-core&lt;/code&gt; is a part of command line compiler and contains only necessary APIs.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;idea-full&lt;/code&gt; is a full blown IntelliJ IDEA Community Edition to be used in the plugin module.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;These dependencies are quite large, so depending on the quality of your internet connection you might face timeouts getting them. In this case, you can increase timeout by specifying the following command line parameters on the first run:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;./gradlew -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Important gradle tasks&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;clean&lt;/code&gt; - clean build results&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;dist&lt;/code&gt; - assembles the compiler distribution into &lt;code&gt;dist/kotlinc/&lt;/code&gt; folder&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;install&lt;/code&gt; - build and install all public artifacts into local maven repository&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;coreLibsTest&lt;/code&gt; - build and run stdlib, reflect and kotlin-test tests&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;gradlePluginTest&lt;/code&gt; - build and run gradle plugin tests&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;compilerTest&lt;/code&gt; - build and run all compiler tests&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;To reproduce TeamCity build use &lt;code&gt;-Pteamcity=true&lt;/code&gt; flag. Local builds don&#39;t run proguard and have jar compression disabled by default.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;OPTIONAL:&lt;/strong&gt; Some artifacts, mainly Maven plugin ones, are built separately with Maven. Refer to &lt;a href=&quot;https://raw.githubusercontent.com/JetBrains/kotlin/master/libraries/ReadMe.md&quot;&gt;libraries/ReadMe.md&lt;/a&gt; for details.&lt;/p&gt; 
&lt;p&gt;To build Kotlin/Native, see &lt;a href=&quot;https://raw.githubusercontent.com/JetBrains/kotlin/master/kotlin-native/README.md#building-from-source&quot;&gt;kotlin-native/README.md&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;&lt;a name=&quot;working-in-idea&quot;&gt;&lt;/a&gt; Working with the project in IntelliJ IDEA&lt;/h2&gt; 
&lt;p&gt;It is recommended to use the latest released version of Intellij IDEA (Community or Ultimate Edition). You can download IntelliJ IDEA &lt;a href=&quot;https://www.jetbrains.com/idea/download&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;After cloning the project, import the project in IntelliJ by choosing the project directory in the Open project dialog.&lt;/p&gt; 
&lt;p&gt;For handy work with compiler tests it&#39;s recommended to use &lt;a href=&quot;https://github.com/demiurg906/test-data-helper-plugin&quot;&gt;Kotlin Compiler Test Helper&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Dependency verification&lt;/h3&gt; 
&lt;p&gt;We have a &lt;a href=&quot;https://docs.gradle.org/current/userguide/dependency_verification.html&quot;&gt;dependencies verification&lt;/a&gt; feature enabled in the repository for all Gradle builds. Gradle will check hashes (md5 and sha256) of used dependencies and will fail builds with &lt;code&gt;Dependency verification failed&lt;/code&gt; errors when local artifacts are absent or have different hashes listed in the &lt;a href=&quot;https://github.com/JetBrains/kotlin/raw/master/gradle/verification-metadata.xml&quot;&gt;verification-metadata.xml&lt;/a&gt; file.&lt;/p&gt; 
&lt;p&gt;It&#39;s expected that &lt;code&gt;verification-metadata.xml&lt;/code&gt; should only be updated with the commits that modify the build. There are some tips how to perform such updates:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Delete &lt;code&gt;components&lt;/code&gt; section of &lt;code&gt;verification-metadata.xml&lt;/code&gt; to avoid stockpiling of old unused dependencies. You may use the following command:&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#macOS
sed -i &#39;&#39; -e &#39;/&amp;lt;components&amp;gt;/,/&amp;lt;\/components&amp;gt;/d&#39; gradle/verification-metadata.xml
#Linux &amp;amp; Git for Windows
sed -i -e &#39;/&amp;lt;components&amp;gt;/,/&amp;lt;\/components&amp;gt;/d&#39; gradle/verification-metadata.xml
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;Re-generate dependencies with Gradle&#39;s &lt;code&gt;--write-verification-metadata&lt;/code&gt; command (verify update relates to your changes)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./gradlew --write-verification-metadata sha256 -Pkotlin.native.enabled=true resolveDependencies
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;em&gt;&lt;code&gt;resolveDependencies&lt;/code&gt; task resolves dependencies for all platforms including dependencies downloaded by plugins.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;You can also use &lt;code&gt;./scripts/update-verification-metadata.sh&lt;/code&gt; script which includes both of these steps&lt;/p&gt; 
&lt;p&gt;Keep in mind:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;If you’re adding a dependency with OS mentioned in an artifact name (&lt;code&gt;darwin&lt;/code&gt;, &lt;code&gt;mac&lt;/code&gt;, &lt;code&gt;osx&lt;/code&gt;, &lt;code&gt;linux&lt;/code&gt;, &lt;code&gt;windows&lt;/code&gt;), remember to add them to &lt;code&gt;implicitDependencies&lt;/code&gt; configuration or update &lt;code&gt;resolveDependencies&lt;/code&gt; task if needed. &lt;code&gt;resolveDependencies&lt;/code&gt; should resolve all dependencies including dependencies for different platforms.&lt;/li&gt; 
 &lt;li&gt;If you have a &lt;code&gt;local.properties&lt;/code&gt; file in your Kotlin project folder, make sure that it doesn&#39;t contain &lt;code&gt;kotlin.native.enabled=false&lt;/code&gt;. Otherwise, native-only dependencies may not be added to the verification metadata. This is because &lt;code&gt;local.properties&lt;/code&gt; has higher precedence than the &lt;code&gt;-Pkotlin.native.enabled=true&lt;/code&gt; specified in the Gradle command.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Using -dev versions&lt;/h2&gt; 
&lt;p&gt;We publish &lt;code&gt;-dev&lt;/code&gt; versions frequently.&lt;/p&gt; 
&lt;p&gt;For &lt;code&gt;-dev&lt;/code&gt; versions you can use the &lt;a href=&quot;https://redirector.kotlinlang.org/maven/bootstrap/org/jetbrains/kotlin/kotlin-compiler/maven-metadata.xml&quot;&gt;list of available versions&lt;/a&gt; and include this maven repository:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-kotlin&quot;&gt;maven(&quot;https://redirector.kotlinlang.org/maven/bootstrap&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h1&gt;License&lt;/h1&gt; 
&lt;p&gt;Kotlin is distributed under the terms of the Apache License (Version 2.0). See &lt;a href=&quot;https://raw.githubusercontent.com/JetBrains/kotlin/master/license/README.md&quot;&gt;license folder&lt;/a&gt; for details.&lt;/p&gt; 
&lt;h1&gt;Contributing&lt;/h1&gt; 
&lt;p&gt;Please be sure to review Kotlin&#39;s &lt;a href=&quot;https://raw.githubusercontent.com/JetBrains/kotlin/master/docs/contributing.md&quot;&gt;contributing guidelines&lt;/a&gt; to learn how to help the project.&lt;/p&gt; 
&lt;h1&gt;Kotlin Foundation&lt;/h1&gt; 
&lt;p&gt;The Kotlin Foundation is a non-profit organization whose mission is to promote and advance the Kotlin ecosystem. You can learn more about the structure and goals of the Kotlin Foundation on its &lt;a href=&quot;https://kotlinfoundation.org/&quot;&gt;official website&lt;/a&gt;.&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/3432266/7e79bf80-7aa6-11eb-9cbd-d7bda7eaf1aa" medium="image" />
      
    </item>
    
    <item>
      <title>home-assistant/android</title>
      <link>https://github.com/home-assistant/android</link>
      <description>&lt;p&gt;Home Assistant Companion for Android&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Home Assistant Companion for Android&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/home-assistant/android/actions/workflows/onPush.yml&quot;&gt;&lt;img src=&quot;https://github.com/home-assistant/android/actions/workflows/onPush.yml/badge.svg?sanitize=true&quot; alt=&quot;Build Status&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Play%20Store-Download-blue?logo=google-play&quot; alt=&quot;Play Store&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://play.google.com/apps/testing/io.homeassistant.companion.android&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Play%20Store%20Beta-Download-blue?logo=google-play&quot; alt=&quot;Play Store Beta&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/c5DvZ4e&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/330944238910963714?label=Discord&amp;amp;logo=discord&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/home-assistant/android/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/home-assistant/android?style=social&quot; alt=&quot;Stars&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Welcome to the &lt;strong&gt;Home Assistant Companion for Android&lt;/strong&gt;! This is the official Android app for &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt;, a powerful open-source home automation platform. Join us in building an app used by millions of users worldwide.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Control Your Smart Home&lt;/strong&gt;: Seamlessly interact with your Home Assistant instance.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Native Android Experience&lt;/strong&gt;: Leverage Android-specific features like widgets, notifications, and location tracking.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Customizable&lt;/strong&gt;: Tailor the app to your needs with themes, dashboards, and more.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Open Source&lt;/strong&gt;: Contribute to a project that empowers users to take control of their smart homes.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Get the app&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&quot;&gt;Download from the Play Store&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt; Join the &lt;a href=&quot;https://play.google.com/apps/testing/io.homeassistant.companion.android&quot;&gt;Play Store Beta&lt;/a&gt; to test new features early.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Other Stores&lt;/strong&gt;: The app is also available in other app stores.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;Looking for help? Check out the &lt;a href=&quot;https://companion.home-assistant.io/&quot;&gt;Home Assistant Companion Documentation&lt;/a&gt; for detailed guides on using the app.&lt;/p&gt; 
&lt;h2&gt;Report a bug or request a feature&lt;/h2&gt; 
&lt;p&gt;Found a bug or have an idea for a new feature? Let us know!&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/home-assistant/android/issues/new?template=Bug_report.md&quot;&gt;Open a Bug Report&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/home-assistant/android/issues/new?template=feature_request.md&quot;&gt;Request a Feature&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;We appreciate your feedback and contributions to make the app even better!&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;We are thrilled to welcome contributions from the community! This app exists thanks to the incredible efforts of the Home Assistant community. Whether you&#39;re fixing bugs, adding new features, or improving documentation, your contributions make a difference.&lt;/p&gt; 
&lt;p&gt;Every contribution, big or small, is greatly appreciated. Together, we can make the Home Assistant Companion for Android even better!&lt;/p&gt; 
&lt;h3&gt;Getting started&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Read the &lt;a href=&quot;https://developers.home-assistant.io/docs/android/&quot;&gt;Developer Guide&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Fork the repository and create a branch for your changes.&lt;/li&gt; 
 &lt;li&gt;Submit a pull request and join the discussion!&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Join the community&lt;/h2&gt; 
&lt;p&gt;Connect with other contributors and users in our vibrant &lt;strong&gt;&lt;a href=&quot;https://discord.gg/c5DvZ4e&quot;&gt;Discord Community&lt;/a&gt;&lt;/strong&gt;: Join the &lt;strong&gt;&lt;a href=&quot;https://discord.com/channels/330944238910963714/1346948551892009101&quot;&gt;#Android&lt;/a&gt;&lt;/strong&gt; channel to chat with developers and contributors.&lt;/p&gt; 
&lt;h2&gt;Star the repository&lt;/h2&gt; 
&lt;p&gt;If you find this project useful, consider giving it a star on GitHub!&lt;br /&gt; It helps others discover the project and motivates us to keep improving.&lt;/p&gt; 
&lt;a href=&quot;https://next.ossinsight.io/widgets/official/analyze-repo-stars-history?repo_id=179008173&quot; target=&quot;_blank&quot; style=&quot;display: block&quot; align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://next.ossinsight.io/widgets/official/analyze-repo-stars-history/thumbnail.png?repo_id=179008173&amp;amp;image_size=auto&amp;amp;color_scheme=dark&quot; width=&quot;721&quot; height=&quot;auto&quot; /&gt; 
  &lt;img alt=&quot;Star History of home-assistant/android&quot; src=&quot;https://next.ossinsight.io/widgets/official/analyze-repo-stars-history/thumbnail.png?repo_id=179008173&amp;amp;image_size=auto&amp;amp;color_scheme=light&quot; width=&quot;721&quot; height=&quot;auto&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;p&gt;&lt;a href=&quot;https://www.openhomefoundation.org/&quot;&gt;&lt;img src=&quot;https://www.openhomefoundation.org/badges/home-assistant.png&quot; alt=&quot;Home Assistant - A project from the Open Home Foundation&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/179008173/c5dcd9da-eaec-488b-91db-a9dbfe2f7205" medium="image" />
      
    </item>
    
    <item>
      <title>xororz/local-dream</title>
      <link>https://github.com/xororz/local-dream</link>
      <description>&lt;p&gt;Run Stable Diffusion on Android Devices with Snapdragon NPU acceleration. Also supports CPU/GPU inference.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;Local Dream &lt;img src=&quot;https://raw.githubusercontent.com/xororz/local-dream/master/assets/icon.png&quot; width=&quot;32&quot; alt=&quot;Local Dream&quot; /&gt;&lt;/h1&gt; 
 &lt;p&gt;&lt;strong&gt;Android Stable Diffusion with Snapdragon NPU acceleration&lt;/strong&gt;&lt;br /&gt; &lt;em&gt;Also supports CPU/GPU inference&lt;/em&gt;&lt;/p&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/xororz/local-dream/master/assets/demo1.jpg&quot; alt=&quot;App Demo&quot; width=&quot;800&quot; /&gt; 
&lt;/div&gt; 
&lt;h2&gt;About this Repo&lt;/h2&gt; 
&lt;p&gt;This project is &lt;strong&gt;now open sourced and completely free&lt;/strong&gt;. Hope you enjoy it!&lt;/p&gt; 
&lt;p&gt;If you like it, please consider &lt;a href=&quot;https://raw.githubusercontent.com/xororz/local-dream/master/#-support-this-project&quot;&gt;sponsor&lt;/a&gt; this project.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info 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;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;Currently focused on SD1.5 and SDXL models. SD2.1 is no longer maintained due to poor quality and limited popularity.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;NPU support:&lt;/strong&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;SD1.5 models are supported on Snapdragon NPUs with Hexagon V68 architecture or newer.&lt;/li&gt; 
  &lt;li&gt;SDXL models are supported on Snapdragon 8 Gen 3 and newer devices.&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;If your chip is outside the above scope, you can only run SD1.5 on CPU/GPU.&lt;/p&gt; 
 &lt;p&gt;You can join our &lt;a href=&quot;https://t.me/local_dream&quot;&gt;telegram group&lt;/a&gt; for discussion or help with testing.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;User Guide&lt;/h2&gt; 
&lt;p&gt;For certain reasons, all guides and documentation have been moved to &lt;a href=&quot;https://ld-guide.chino.icu&quot;&gt;Guide Site&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Credits &amp;amp; Acknowledgments&lt;/h2&gt; 
&lt;p&gt;Local Dream is built on top of many excellent open-source projects. Sincere thanks to all the authors and contributors whose work made this project possible.&lt;/p&gt; 
&lt;h3&gt;C++ Libraries&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk&quot;&gt;Qualcomm QNN SDK&lt;/a&gt;&lt;/strong&gt; - NPU model execution&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/alibaba/MNN/&quot;&gt;alibaba/MNN&lt;/a&gt;&lt;/strong&gt; - CPU model execution&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/xtensor-stack&quot;&gt;xtensor-stack&lt;/a&gt;&lt;/strong&gt; - Tensor operations &amp;amp; scheduling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mlc-ai/tokenizers-cpp&quot;&gt;mlc-ai/tokenizers-cpp&lt;/a&gt;&lt;/strong&gt; - Text tokenization&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/yhirose/cpp-httplib&quot;&gt;yhirose/cpp-httplib&lt;/a&gt;&lt;/strong&gt; - HTTP server&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/nothings/stb&quot;&gt;nothings/stb&lt;/a&gt;&lt;/strong&gt; - Image processing&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/facebook/zstd&quot;&gt;facebook/zstd&lt;/a&gt;&lt;/strong&gt; - Model compression&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/nlohmann/json&quot;&gt;nlohmann/json&lt;/a&gt;&lt;/strong&gt; - JSON processing&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Android Libraries&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/square/okhttp&quot;&gt;square/okhttp&lt;/a&gt;&lt;/strong&gt; - HTTP client&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/coil-kt/coil&quot;&gt;coil-kt/coil&lt;/a&gt;&lt;/strong&gt; - Image loading &amp;amp; processing&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/MoyuruAizawa/Cropify&quot;&gt;MoyuruAizawa/Cropify&lt;/a&gt;&lt;/strong&gt; - Image cropping&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;AOSP, Material Design, Jetpack Compose&lt;/strong&gt; - UI framework&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Models&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/CompVis/stable-diffusion&quot;&gt;CompVis/stable-diffusion&lt;/a&gt;&lt;/strong&gt; and all other model creators&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/xinntao/Real-ESRGAN&quot;&gt;xinntao/Real-ESRGAN&lt;/a&gt;&lt;/strong&gt; - Image upscaling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://huggingface.co/Kim2091/UltraSharpV2&quot;&gt;Kim2091/UltraSharpV2&lt;/a&gt;&lt;/strong&gt; - Image upscaling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/bhky/opennsfw2&quot;&gt;bhky/opennsfw2&lt;/a&gt;&lt;/strong&gt; - NSFW content filtering&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;💖 Support This Project&lt;/h2&gt; 
&lt;p&gt;If you find Local Dream useful, please consider supporting its development:&lt;/p&gt; 
&lt;h3&gt;What Your Support Helps With:&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Additional Models&lt;/strong&gt; - More AI model integrations&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;New Features&lt;/strong&gt; - Enhanced functionality and capabilities&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt; - Continuous improvement and maintenance&lt;/li&gt; 
&lt;/ul&gt; 
&lt;a href=&quot;https://ko-fi.com/xororz&quot;&gt; &lt;img height=&quot;36&quot; style=&quot;border:0px;height:36px;&quot; src=&quot;https://storage.ko-fi.com/cdn/kofi2.png?v=3&quot; border=&quot;0&quot; alt=&quot;Buy Me a Coffee at ko-fi.com&quot; /&gt; &lt;/a&gt; 
&lt;a href=&quot;https://afdian.com/a/xororz&quot;&gt; &lt;img height=&quot;36&quot; style=&quot;border-radius:12px;height:36px;&quot; src=&quot;https://pic1.afdiancdn.com/static/img/welcome/button-sponsorme.jpg&quot; alt=&quot;在爱发电支持我&quot; /&gt; &lt;/a&gt; 
&lt;p&gt;Your sponsorship helps maintain and improve Local Dream for everyone!&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/8479293579c0523d263361f8c8ea347b321dab890d91af698ccebebddbe12452/xororz/local-dream" medium="image" />
      
    </item>
    
    <item>
      <title>SimonSchubert/Kai</title>
      <link>https://github.com/SimonSchubert/Kai</link>
      <description>&lt;p&gt;OpenClaw alternative in your pocket&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Kai 9000&lt;/h1&gt; 
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/badge/Platform-Web-f7df1c?logo=javascript&quot; alt=&quot;Web&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Platform-Android-34a853.svg?logo=android&quot; alt=&quot;Android&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Platform-iOS-lightgrey.svg?logo=apple&quot; alt=&quot;iOS&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Platform-Windows/macOS/Linux-e10707.svg?logo=openjdk&quot; alt=&quot;Platform JVM&quot; /&gt;&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;br /&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/site/img/logo_animation.gif&quot; height=&quot;80&quot; /&gt; 
 &lt;br /&gt; 
 &lt;br /&gt; 
 &lt;p&gt;An &lt;strong&gt;open-source AI assistant with persistent memory&lt;/strong&gt; that runs on &lt;strong&gt;Android, iOS, Windows, Mac, Linux, and Web&lt;/strong&gt;.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://kai9000.com&quot;&gt;Website&lt;/a&gt;&lt;/strong&gt; - &lt;strong&gt;&lt;a href=&quot;https://kai9000.com/docs/&quot;&gt;Documentation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/kai-ai/id6758148023&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/app_store_badge.png&quot; alt=&quot;App Store&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.inspiredandroid.kai&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/play_store_badge.png&quot; alt=&quot;Play Store&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://f-droid.org/en/packages/com.inspiredandroid.kai/&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/fdroid_badge.png&quot; alt=&quot;F-Droid&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://kai9000.com/app/&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/web_badge.png&quot; alt=&quot;Web&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Homebrew (macOS):&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;brew install --cask simonschubert/tap/kai
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;AUR (Arch Linux):&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;yay -S kai-bin
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Winget (Windows):&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;winget install SimonSchubert.Kai
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Direct Downloads&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Platform&lt;/th&gt; 
   &lt;th&gt;Format&lt;/th&gt; 
   &lt;th&gt;Download&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Android&lt;/td&gt; 
   &lt;td&gt;APK&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SimonSchubert/Kai/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;macOS&lt;/td&gt; 
   &lt;td&gt;DMG&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SimonSchubert/Kai/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Windows&lt;/td&gt; 
   &lt;td&gt;MSI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SimonSchubert/Kai/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Linux&lt;/td&gt; 
   &lt;td&gt;DEB&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SimonSchubert/Kai/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Linux&lt;/td&gt; 
   &lt;td&gt;RPM&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SimonSchubert/Kai/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Linux&lt;/td&gt; 
   &lt;td&gt;AppImage&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SimonSchubert/Kai/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;AI That Builds Screens, Not Just Text&lt;/h2&gt; 
&lt;p&gt;Kai 9000&#39;s Interactive UI lets the AI generate full interactive screens — quizzes, dashboards, recipes, brainstorms, and more. Navigate by tapping buttons instead of scrolling through chat.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/interactive-survival.png&quot; alt=&quot;Survival Game&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/interactive-recipe.png&quot; alt=&quot;Recipe Card&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/interactive-ecopulse.png&quot; alt=&quot;EcoPulse Brainstorm&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/interactive-memories.png&quot; alt=&quot;Memories&quot; height=&quot;300&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Persistent memory&lt;/strong&gt; — Kai remembers important details across conversations and uses them automatically&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Customizable soul&lt;/strong&gt; — Define the AI&#39;s personality and behavior with an editable system prompt&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multi-service fallback&lt;/strong&gt; — 24 LLM providers with automatic failover&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;On-device inference&lt;/strong&gt; — Run AI models locally on Android using LiteRT, no internet needed&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool execution&lt;/strong&gt; — Web search, notifications, calendar events, shell commands, and more&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;MCP server support&lt;/strong&gt; — Connect to remote tool servers via the Model Context Protocol&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Autonomous heartbeat&lt;/strong&gt; — Periodic self-checks that surface anything needing attention&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Settings export/import&lt;/strong&gt; — Backup and restore all settings as a JSON file&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Encrypted storage&lt;/strong&gt; — Conversations stored locally with encryption&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Text to speech&lt;/strong&gt; — Listen to AI responses&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Linux Sandbox&lt;/strong&gt; — On Android, the AI can run shell commands, scripts, and tools in a secure sandboxed Linux environment&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Image attachments&lt;/strong&gt; — Attach images to any conversation&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Linux Sandbox (Android)&lt;/h2&gt; 
&lt;p&gt;On Android, Kai includes a built-in Linux environment that the AI can use to execute shell commands, run scripts, and operate tools on your behalf. This turns Kai from a chat-only assistant into one that can take real action — installing packages, processing data, running Python scripts, and more.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Powered by Alpine Linux&lt;/strong&gt; — A lightweight ~3 MB download sets up a full Linux userland via &lt;a href=&quot;https://proot-me.github.io/&quot;&gt;proot&lt;/a&gt;, no root required&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Optional packages&lt;/strong&gt; — One tap installs bash, curl, wget, git, jq, python3, pip, and Node.js&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Interactive terminal&lt;/strong&gt; — A built-in terminal lets you run commands manually alongside the AI&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Secure&lt;/strong&gt; — Everything runs sandboxed inside the app with no access to the host system&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Enable it in &lt;strong&gt;Settings &amp;gt; Linux Sandbox&lt;/strong&gt;.&lt;/p&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-7.png&quot; alt=&quot;Linux Sandbox&quot; height=&quot;300&quot; /&gt; 
&lt;h2&gt;Screenshots&lt;/h2&gt; 
&lt;h3&gt;Desktop&lt;/h3&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/desktop-1.png&quot; alt=&quot;Desktop App&quot; height=&quot;300&quot; /&gt; 
&lt;h3&gt;Web&lt;/h3&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/web-1.png&quot; alt=&quot;Web App&quot; height=&quot;300&quot; /&gt; 
&lt;h3&gt;Mobile&lt;/h3&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-1.png&quot; alt=&quot;Mobile Screenshot 1&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-2.png&quot; alt=&quot;Mobile Screenshot 2&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-3.png&quot; alt=&quot;Mobile Screenshot 3&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-4.png&quot; alt=&quot;Mobile Screenshot 4&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-5.png&quot; alt=&quot;Mobile Screenshot 5&quot; height=&quot;300&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/mobile-6.png&quot; alt=&quot;Mobile Screenshot 6&quot; height=&quot;300&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;How It Works&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;                        ┌────────┐
                        │  User  │
                        └───┬────┘
                            │ message
                            ▼
               ┌─────────────────────────┐
               │          Chat           │
               │                         │
               │  prompt + memories      │
               │        │                │
               │        ▼                │
               │    ┌────────┐           │
               │    │   AI   │◀─┐        │
               │    └───┬────┘  │        │
               │        │   tool calls   │
               │        │   &amp;amp; results    │
               │        ▼      │        │
               │    ┌────────┐ │        │
               │    │ Tools  │─┘        │
               │    └───┬────┘          │
               │        │               │
               └────────┼───────────────┘
                        │ store / recall
                        ▼
               ┌─────────────────┐    hitCount &amp;gt;= 5
               │     Memory      │───────────────────┐
               │                 │                   │
               │  facts, prefs,  │                   ▼
               │  learnings      │          ┌────────────────┐
               │                 │◀─delete──│ Promote into   │
               └─────────────────┘          │ System Prompt  │
                        ▲                   └────────────────┘
                        │ reviews
                        │
               ┌─────────────────┐
               │    Heartbeat    │
               │                 │
               │  autonomous     │
               │  self-check     │
               │  every 30 min   │
               │  (8am–10pm)     │
               │                 │
               │  all good?      │
               │  → stays silent │
               │  needs action?  │
               │  → notifies user│
               └─────────────────┘
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Chat&lt;/strong&gt; — User sends a message. The AI responds, calling tools (memory, web search, shell, etc.) in a loop until it has a final answer.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Memory&lt;/strong&gt; — The AI stores and recalls facts, preferences, and learnings. Memories that prove useful (5+ hits) can be promoted into the system prompt permanently.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Heartbeat&lt;/strong&gt; — A background self-check runs every 30 minutes. It reviews memories, pending tasks, and emails. If something needs attention, it notifies the user. Otherwise, it stays silent.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Supported Services&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://console.anthropic.com&quot;&gt;Anthropic&lt;/a&gt; · &lt;a href=&quot;https://openai.com&quot;&gt;OpenAI&lt;/a&gt; · &lt;a href=&quot;https://aistudio.google.com&quot;&gt;Gemini&lt;/a&gt; · &lt;a href=&quot;https://www.deepseek.com&quot;&gt;DeepSeek&lt;/a&gt; · &lt;a href=&quot;https://mistral.ai&quot;&gt;Mistral&lt;/a&gt; · &lt;a href=&quot;https://x.ai&quot;&gt;xAI&lt;/a&gt; · &lt;a href=&quot;https://openrouter.ai&quot;&gt;OpenRouter&lt;/a&gt; · &lt;a href=&quot;https://groq.com&quot;&gt;Groq&lt;/a&gt; · &lt;a href=&quot;https://developer.nvidia.com&quot;&gt;NVIDIA&lt;/a&gt; · &lt;a href=&quot;https://cerebras.ai&quot;&gt;Cerebras&lt;/a&gt; · &lt;a href=&quot;https://ollama.com&quot;&gt;Ollama Cloud&lt;/a&gt; · &lt;a href=&quot;https://longcat.chat&quot;&gt;LongCat&lt;/a&gt; · &lt;a href=&quot;https://together.ai&quot;&gt;Together AI&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co&quot;&gt;Hugging Face&lt;/a&gt; · &lt;a href=&quot;https://venice.ai&quot;&gt;Venice AI&lt;/a&gt; · &lt;a href=&quot;https://moonshot.cn&quot;&gt;Moonshot AI&lt;/a&gt; · &lt;a href=&quot;https://z.ai&quot;&gt;Z.AI&lt;/a&gt; · &lt;a href=&quot;https://minimax.io&quot;&gt;MiniMax&lt;/a&gt; · &lt;a href=&quot;https://aihubmix.com&quot;&gt;AIHubMix&lt;/a&gt; · &lt;a href=&quot;https://deepinfra.com&quot;&gt;Deep Infra&lt;/a&gt; · &lt;a href=&quot;https://fireworks.ai&quot;&gt;Fireworks AI&lt;/a&gt; · &lt;a href=&quot;https://opencode.ai&quot;&gt;OpenCode&lt;/a&gt; · OpenAI-Compatible API · LiteRT On-Device (Android) · Free tier (no API key needed)&lt;/p&gt; 
&lt;h2&gt;MCP Servers&lt;/h2&gt; 
&lt;p&gt;Kai supports the &lt;a href=&quot;https://modelcontextprotocol.io/&quot;&gt;Model Context Protocol&lt;/a&gt; for connecting to external tool servers. Go to &lt;strong&gt;Settings &amp;gt; Tools &amp;gt; Add MCP Server&lt;/strong&gt; to connect to any Streamable HTTP MCP endpoint, or pick from a curated list of popular free servers:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Server&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;Fetch&lt;/td&gt; 
   &lt;td&gt;Fetch web content and convert HTML to markdown&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;DeepWiki&lt;/td&gt; 
   &lt;td&gt;AI-powered docs for any GitHub repo&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Sequential Thinking&lt;/td&gt; 
   &lt;td&gt;Structured step-by-step problem-solving&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Context7&lt;/td&gt; 
   &lt;td&gt;Up-to-date library and framework docs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Globalping&lt;/td&gt; 
   &lt;td&gt;Ping, traceroute, DNS from global probes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;CoinGecko&lt;/td&gt; 
   &lt;td&gt;Real-time crypto prices and market data&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Manifold Markets&lt;/td&gt; 
   &lt;td&gt;Prediction market data and odds&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Find-A-Domain&lt;/td&gt; 
   &lt;td&gt;Domain availability across 1,444+ TLDs&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;All popular servers are free and require no API key. MCP servers auto-reconnect on app startup.&lt;/p&gt; 
&lt;h2&gt;Integrations&lt;/h2&gt; 
&lt;h3&gt;Splinterlands Auto-Battle (Android &amp;amp; Desktop)&lt;/h3&gt; 
&lt;p&gt;Kai can automatically play &lt;a href=&quot;https://splinterlands.com&quot;&gt;Splinterlands&lt;/a&gt; Wild Ranked battles. Configure one or more LLM services in priority order, add your Hive account, and hit Start -- Kai will continuously find matches, pick teams using LLM-powered strategy, and submit them on-chain. Falls back to a simple greedy picker if all LLM services fail. Available in &lt;strong&gt;Settings &amp;gt; Integrations&lt;/strong&gt;.&lt;/p&gt; 
&lt;h2&gt;Supported Languages&lt;/h2&gt; 
&lt;p&gt;Afrikaans, Albanian, Amharic, Arabic, Belarusian, Bengali, Bulgarian, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, English, Estonian, Filipino, Finnish, French, German, Greek, Gujarati, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Kazakh, Korean, Latvian, Lithuanian, Malay, Marathi, Norwegian, Persian, Polish, Portuguese, Punjabi, Romanian, Romansh, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, Zulu&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;h3&gt;Screenshot Automation&lt;/h3&gt; 
&lt;p&gt;Two separate screenshot pipelines exist, both using Compose screenshot tests:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;README screenshots&lt;/strong&gt; — Used for this README. CI runs this automatically on every push and auto-commits any changes.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./gradlew :screenshotTests:updateScreenshots
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Store screenshots&lt;/strong&gt; — Generates localized screenshots for the Play Store in all supported locales. Upload via fastlane.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./gradlew :screenshotTests:generateStoreScreenshots
bundle exec fastlane android upload_screenshots
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Kai UI component screenshots&lt;/strong&gt; — Records golden images for &lt;code&gt;KaiUiScreenshotTest&lt;/code&gt; only. Faster than recording the full suite when iterating on Kai UI components.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./gradlew :screenshotTests:recordKaiUiScreenshots
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Sponsors&lt;/h2&gt; 
&lt;p&gt;This project is open-source and maintained by a single developer. If you find this app useful, please consider sponsoring to help take it to the next level with more features and faster updates.&lt;/p&gt; 
&lt;h2&gt;Credits&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Mistral: &lt;a href=&quot;https://mistral.ai/&quot;&gt;https://mistral.ai/&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/909717778/62f1164c-70fe-46d6-9b63-16d8d6b9b6d5" medium="image" />
      
    </item>
    
    <item>
      <title>six2dez/burp-ai-agent</title>
      <link>https://github.com/six2dez/burp-ai-agent</link>
      <description>&lt;p&gt;Burp Suite extension that adds built-in MCP tooling, AI-assisted analysis, privacy controls, passive and active scanning and more&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Burp AI Agent&lt;/h1&gt; 
&lt;p&gt;&lt;strong&gt;The bridge between Burp Suite and modern AI.&lt;/strong&gt;&lt;/p&gt; 
&lt;!-- screenshot: main extension tab with chat and settings visible --&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/screenshots/main-tab.png&quot; alt=&quot;Burp AI Agent Screenshot&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;Burp AI Agent is an extension for Burp Suite that integrates AI into your security workflow. Use local models or cloud providers, connect external AI agents via MCP, and let passive/active scanners find vulnerabilities while you focus on manual testing.&lt;/p&gt; 
&lt;h2&gt;Highlights&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;10 AI Backends&lt;/strong&gt; — Burp AI (built-in), Ollama, LM Studio, NVIDIA NIM, Generic OpenAI-compatible, Gemini CLI, Claude CLI, Codex CLI, OpenCode CLI, Copilot CLI.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;53+ MCP Tools&lt;/strong&gt; — Let Claude Desktop (or any MCP client) drive Burp autonomously.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;62 Vulnerability Classes&lt;/strong&gt; — Passive and Active AI scanners across injection, auth, crypto, and more.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Burp Scan Skill&lt;/strong&gt; — Use your preferred AI coding assistant (Claude Code, Gemini CLI, Codex, etc.) as a scanner via MCP.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;3 Privacy Modes&lt;/strong&gt; — STRICT / BALANCED / OFF. Redact sensitive data before it leaves Burp.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Custom Prompt Library&lt;/strong&gt; — Save free-form prompts per context (HTTP request or scanner issue); launch them from the right-click menu or type ad-hoc ones via &lt;code&gt;Custom…&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Audit Logging&lt;/strong&gt; — JSONL with SHA-256 integrity hashing for compliance; every launch stamped with &lt;code&gt;promptSource&lt;/code&gt; / &lt;code&gt;contextKind&lt;/code&gt; for reproducibility.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;h3&gt;1. Install&lt;/h3&gt; 
&lt;p&gt;Download the latest JAR from &lt;a href=&quot;https://github.com/six2dez/burp-ai-agent/releases&quot;&gt;Releases&lt;/a&gt;, or build from source (Java 21):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/six2dez/burp-ai-agent.git
cd burp-ai-agent
JAVA_HOME=/path/to/jdk-21 ./gradlew clean shadowJar
# Output: build/libs/Custom-AI-Agent-&amp;lt;version&amp;gt;.jar
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;2. Load into Burp&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Open Burp Suite (Community or Professional).&lt;/li&gt; 
 &lt;li&gt;Go to &lt;strong&gt;Extensions &amp;gt; Installed &amp;gt; Add&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Select &lt;strong&gt;Java&lt;/strong&gt; as extension type and choose the &lt;code&gt;.jar&lt;/code&gt; file.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;!-- screenshot: Burp Extensions &gt; Add dialog with the JAR loaded --&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/screenshots/burp-extensions-add.png&quot; alt=&quot;Load Extension&quot; /&gt;&lt;/p&gt; 
&lt;h3&gt;3. Agent Profiles&lt;/h3&gt; 
&lt;p&gt;The extension auto-installs the bundled profiles into &lt;code&gt;~/.burp-ai-agent/AGENTS/&lt;/code&gt; on first run. Drop additional &lt;code&gt;*.md&lt;/code&gt; files in that directory to add custom profiles.&lt;/p&gt; 
&lt;h3&gt;4. Configure a Backend&lt;/h3&gt; 
&lt;p&gt;Open the &lt;strong&gt;AI Agent&lt;/strong&gt; tab and go to &lt;strong&gt;Settings&lt;/strong&gt;. Pick a backend:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Backend&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Type&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Setup&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Burp AI (built-in)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;In-process&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Use Burp Suite Pro&#39;s built-in AI when available; no extra config required.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Ollama&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Local HTTP&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;a href=&quot;https://ollama.com&quot;&gt;Ollama&lt;/a&gt;, run &lt;code&gt;ollama serve&lt;/code&gt;, pull a model (&lt;code&gt;ollama pull llama3.1&lt;/code&gt;).&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;LM Studio&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Local HTTP&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;a href=&quot;https://lmstudio.ai&quot;&gt;LM Studio&lt;/a&gt;, load a model, start the server.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;NVIDIA NIM&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;HTTP&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Use the default &lt;code&gt;https://integrate.api.nvidia.com&lt;/code&gt; endpoint, set your NVIDIA API key, and choose a model such as &lt;code&gt;moonshotai/kimi-k2.5&lt;/code&gt;.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Generic OpenAI-compatible&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;HTTP&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Provide a base URL and model for any OpenAI-compatible provider.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Cloud CLI&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;code&gt;gemini&lt;/code&gt;, run &lt;code&gt;gemini auth login&lt;/code&gt;.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Claude CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Cloud CLI&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;code&gt;claude&lt;/code&gt;, set &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; or run &lt;code&gt;claude login&lt;/code&gt;.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Cloud CLI&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;code&gt;codex&lt;/code&gt;, set &lt;code&gt;OPENAI_API_KEY&lt;/code&gt;.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;OpenCode CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Cloud CLI&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;code&gt;opencode&lt;/code&gt;, configure provider credentials.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Copilot CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Cloud CLI&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Install &lt;code&gt;copilot&lt;/code&gt; and sign in with your GitHub account.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;For &lt;strong&gt;NVIDIA NIM&lt;/strong&gt;, the backend expects the same chat-completions style flow as the NVIDIA hosted endpoint. A working configuration is:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Backend: NVIDIA NIM
Base URL: https://integrate.api.nvidia.com
Model: moonshotai/kimi-k2.5
API Key: &amp;lt;your nvapi token&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Leave extra headers empty unless your gateway requires them. The extension sends requests to &lt;code&gt;/v1/chat/completions&lt;/code&gt; and uses the configured bearer token automatically.&lt;/p&gt; 
&lt;h3&gt;5. Run Your First Analysis&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Browse a target through Burp Proxy.&lt;/li&gt; 
 &lt;li&gt;Right-click any request in &lt;strong&gt;Proxy &amp;gt; HTTP History&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Select &lt;strong&gt;Extensions &amp;gt; Burp AI Agent &amp;gt; Analyze this request&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;A chat session opens with the AI analysis.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;!-- screenshot: right-click context menu showing Burp AI Agent actions --&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/screenshots/context-menu-request.png&quot; alt=&quot;Context Menu&quot; /&gt;&lt;/p&gt; 
&lt;h3&gt;6. Connect Claude Desktop via MCP (Optional)&lt;/h3&gt; 
&lt;p&gt;Enable the MCP server in &lt;strong&gt;Settings &amp;gt; MCP Server&lt;/strong&gt; and add this to your Claude Desktop config:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt; &lt;strong&gt;Windows&lt;/strong&gt;: &lt;code&gt;%APPDATA%\Claude\claude_desktop_config.json&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;burp-ai-agent&quot;: {
      &quot;command&quot;: &quot;npx&quot;,
      &quot;args&quot;: [
        &quot;-y&quot;,
        &quot;supergateway&quot;,
        &quot;--sse&quot;,
        &quot;http://127.0.0.1:9876/sse&quot;
      ]
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Requires Node.js 18+. If you enable &lt;strong&gt;External Access&lt;/strong&gt;, the MCP client must send &lt;code&gt;Authorization: Bearer &amp;lt;token&amp;gt;&lt;/code&gt; on every request.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Burp Scan Skill (Terminal AI Scanning)&lt;/h2&gt; 
&lt;p&gt;The &lt;code&gt;burp-scan&lt;/code&gt; skill lets you use any AI coding assistant (Claude Code, Gemini CLI, Codex, etc.) as a Burp scanner from your terminal. Instead of the plugin&#39;s built-in AI, &lt;strong&gt;your terminal AI becomes the reasoning engine&lt;/strong&gt; while Burp provides the tools via MCP.&lt;/p&gt; 
&lt;h3&gt;What It Contains&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;53+ MCP tool reference organized by scanning action&lt;/li&gt; 
 &lt;li&gt;Passive analysis protocol (traffic analysis without sending requests)&lt;/li&gt; 
 &lt;li&gt;Active testing payload library (200+ payloads for 62 vuln classes with detection patterns)&lt;/li&gt; 
 &lt;li&gt;End-to-end scanning workflow (scope -&amp;gt; passive -&amp;gt; active -&amp;gt; OOB -&amp;gt; report)&lt;/li&gt; 
 &lt;li&gt;Issue creation protocol with severity/confidence mapping&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Install for Claude Code&lt;/h3&gt; 
&lt;p&gt;Copy the skill to your Claude Code skills directory:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Global (available in all projects)
cp -r skills/burp-scan ~/.claude/skills/burp-scan

# Or project-specific
cp -r skills/burp-scan .claude/skills/burp-scan
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then use &lt;code&gt;/burp-scan&lt;/code&gt; in Claude Code or let it trigger automatically when you mention Burp scanning.&lt;/p&gt; 
&lt;h3&gt;Install for Other AI Assistants&lt;/h3&gt; 
&lt;p&gt;The skill is a standalone Markdown file at &lt;a href=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/skills/burp-scan/SKILL.md&quot;&gt;&lt;code&gt;skills/burp-scan/SKILL.md&lt;/code&gt;&lt;/a&gt;. You can use it with any AI assistant that supports system prompts or context files:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Gemini CLI / Codex / OpenCode&lt;/strong&gt;: Add as a context file or paste into your system prompt&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Custom MCP clients&lt;/strong&gt;: Include the skill content as system context alongside your MCP connection&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Any LLM&lt;/strong&gt;: The file is self-contained — feed it as context along with your MCP tool definitions&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Usage Example&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;You: Connect to Burp MCP at localhost:9876 and scan the proxy history for IDOR vulnerabilities

AI: [Uses proxy_http_history to pull traffic]
    [Identifies endpoints with numeric IDs]
    [Sends http1_request with ID+1, ID-1 payloads]
    [Compares responses for different user data]
    [Creates issue_create for confirmed IDOR]
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;The skill and the plugin&#39;s built-in scanner are complementary: the plugin runs automated background scanning, while the skill enables interactive, analyst-guided scanning from your terminal.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;Full documentation is available at &lt;strong&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com&quot;&gt;burp-ai-agent.six2dez.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/getting-started/installation&quot;&gt;Installation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/getting-started/quick-start&quot;&gt;Quick Start&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/user-guide/ui-tour&quot;&gt;UI Tour&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/user-guide/agent-profiles&quot;&gt;Agent Profiles&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/scanners/passive&quot;&gt;Passive Scanner&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/scanners/active&quot;&gt;Active Scanner&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/mcp/overview&quot;&gt;MCP Overview&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/privacy/privacy-modes&quot;&gt;Privacy Modes&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/reference/settings-reference&quot;&gt;Settings Reference&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/reference/troubleshooting&quot;&gt;Troubleshooting&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://burp-ai-agent.six2dez.com/user-guide/burp-scan-skill&quot;&gt;Burp Scan Skill&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Operator Playbooks&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/docs/mcp-hardening.md&quot;&gt;MCP Hardening&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/docs/ui-safety-guide.md&quot;&gt;UI Safety Guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/docs/backend-troubleshooting.md&quot;&gt;Backend Troubleshooting&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Settings are schema-versioned internally (&lt;code&gt;settings.schema.version&lt;/code&gt;) and migrated additively on load for safe upgrades.&lt;/p&gt; 
&lt;h2&gt;Requirements&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt; Community or Professional (2023.12+)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Java 21&lt;/strong&gt; (bundled with modern Burp for runtime; required separately for building from source)&lt;/li&gt; 
 &lt;li&gt;At least one AI backend configured (see table above)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;This project is licensed under the &lt;a href=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/LICENSE&quot;&gt;MIT License&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Disclaimer&lt;/h2&gt; 
&lt;p&gt;Usage of Burp AI Agent for attacking targets without prior consent is illegal. It is the user&#39;s responsibility to obey all applicable laws. The developers assume no liability for misuse or damage caused by this tool. Use responsibly.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Issues and pull requests are welcome. See &lt;a href=&quot;https://raw.githubusercontent.com/six2dez/burp-ai-agent/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for development setup and guidelines, or the &lt;a href=&quot;https://burp-ai-agent.six2dez.com/developer/architecture&quot;&gt;Developer docs&lt;/a&gt; for architecture details.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/f916c7c7cc4412700a1b18fba72db23579b7f4410690d918943a6ece9b178462/six2dez/burp-ai-agent" medium="image" />
      
    </item>
    
    <item>
      <title>libre-tube/LibreTube</title>
      <link>https://github.com/libre-tube/LibreTube</link>
      <description>&lt;p&gt;An alternative frontend for YouTube, for Android.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/banners/gh-banner.png&quot; width=&quot;auto&quot; height=&quot;auto&quot; alt=&quot;LibreTube&quot; /&gt; 
 &lt;p&gt;&lt;a href=&quot;https://www.gnu.org/licenses/gpl-3.0.en.html&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/widgets/license-widget.svg?sanitize=true&quot; alt=&quot;GPL-v3&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt;
&lt;div align=&quot;center&quot; style=&quot;width:100%; display:flex; justify-content:space-between;&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://matrix.to/#/#LibreTube:matrix.org&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/widgets/mat-widget.svg?sanitize=true&quot; alt=&quot;Matrix&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://fosstodon.org/@libretube&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/widgets/mast-widget.svg?sanitize=true&quot; alt=&quot;Mastodon&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://feddit.rocks/c/libretube&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/widgets/lemmy-widget.svg?sanitize=true&quot; alt=&quot;Lemmy&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; &lt;br /&gt; We don&#39;t accept feature or bug requests on these platforms. Kindly submit requests only on GitHub.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot; style=&quot;width:100%; display:flex; justify-content:space-between;&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://f-droid.org/en/packages/com.github.libretube/&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/badges/fdrload.png&quot; alt=&quot;Get it on F-Droid&quot; width=&quot;30%&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://apt.izzysoft.de/fdroid/index/apk/com.github.libretube&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/badges/izzyload.png&quot; alt=&quot;Get it on IzzyOnDroid&quot; width=&quot;30%&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;https://github.com/libre-tube/LibreTube/releases/latest&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/badges/ghload.png&quot; alt=&quot;Get it on GitHub&quot; width=&quot;30%&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;details&gt; 
 &lt;summary&gt;📜️ Credits&lt;/summary&gt; 
 &lt;p&gt;&lt;sub&gt;Readme Design and Banners by &lt;a href=&quot;https://github.com/XelXen&quot;&gt;XelXen&lt;/a&gt;&lt;/sub&gt; &lt;br /&gt; &lt;sub&gt;Readme Screenshots by &lt;a href=&quot;https://github.com/ARBoyGo&quot;&gt;ARBoyGo&lt;/a&gt;&lt;/sub&gt; &lt;br /&gt; &lt;sub&gt;Readme Emoji is from &lt;a href=&quot;https://openmoji.org&quot;&gt;openmoji&lt;/a&gt;&lt;/sub&gt;&lt;/p&gt; 
 &lt;summary&gt;Icons&lt;/summary&gt; 
 &lt;p&gt;&lt;sub&gt;&lt;a href=&quot;https://github.com/libre-tube/LibreTube/raw/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png&quot;&gt;Default App Icon&lt;/a&gt; by &lt;a href=&quot;https://github.com/XelXen&quot;&gt;XelXen&lt;/a&gt;&lt;/sub&gt; &lt;br /&gt; &lt;sub&gt;&lt;a href=&quot;https://github.com/libre-tube/LibreTube/raw/master/app/src/main/res/mipmap-xxxhdpi/ic_bird_round.png&quot;&gt;Boosted Bird&lt;/a&gt; by &lt;a href=&quot;https://margotdesign.ovh&quot;&gt;Margot Albert-Heuzey&lt;/a&gt;&lt;/sub&gt;&lt;/p&gt; 
&lt;/details&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/about.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; About &lt;/h2&gt; 
&lt;p&gt;YouTube has an extremely invasive &lt;a href=&quot;https://support.google.com/youtube/answer/10364219&quot;&gt;privacy policy&lt;/a&gt; which relies on using user data in unethical ways. They store a lot of your personal data - ranging from ideas, music taste, content, political opinions, and much more than you think.&lt;/p&gt; 
&lt;p&gt;This project is aimed at improving the users&#39; privacy by being independent from Google and bypassing their data collection.&lt;/p&gt; 
&lt;p&gt;Therefore, the app is using the &lt;a href=&quot;https://github.com/TeamPiped/Piped&quot;&gt;Piped API&lt;/a&gt;, which uses proxies to circumvent Google&#39;s data collection and includes some other additional features.&lt;/p&gt; 
&lt;p&gt;If you have questions or need help, please make sure to read the &lt;a href=&quot;https://libre-tube.github.io/#faq&quot;&gt;FAQ&lt;/a&gt; before asking for help at the community channels. The &lt;a href=&quot;https://matrix.to/#/#LibreTube:matrix.org&quot;&gt;Matrix room&lt;/a&gt; is considered as the main communication channel, all other forums or social media accounts are maintained by volunteers from the community but not the developer(s).&lt;/p&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/phone.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; Screenshots &lt;/h2&gt; 
&lt;div style=&quot;width:100%; display:flex; justify-content:space-between;&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_1.jpg&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_1.jpg&quot; width=&quot;19%&quot; alt=&quot;Home&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_2.jpg&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_2.jpg&quot; width=&quot;19%&quot; alt=&quot;Home&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_3.jpg&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_3.jpg&quot; width=&quot;19%&quot; alt=&quot;Subscriptions&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_4.jpg&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_4.jpg&quot; width=&quot;19%&quot; alt=&quot;Library&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_9.jpg&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshot_9.jpg&quot; width=&quot;19%&quot; alt=&quot;Channel Overview&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;More screenshots can be found &lt;a href=&quot;https://github.com/libre-tube/LibreTube/raw/master/SCREEN_SHOT.md&quot;&gt;here&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/feature.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; Features &lt;/h2&gt; 
&lt;ul class=&quot;task-list&quot;&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_0&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_0&quot;&gt; No Ads or Tracking&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_1&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_1&quot;&gt; Subscriptions&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_2&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_2&quot;&gt; Subscription Groups&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_3&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_3&quot;&gt; User Playlists&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_4&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_4&quot;&gt; Playlist Bookmarks&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_5&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_5&quot;&gt; Watch/Search History&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_6&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_6&quot;&gt; Downloads&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_7&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_7&quot;&gt; Background playback&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_8&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_8&quot;&gt; User Accounts via &lt;a href=&quot;https://github.com/TeamPiped/Piped&quot;&gt;Piped&lt;/a&gt; (optional)&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_9&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_9&quot;&gt; &lt;a href=&quot;https://sponsor.ajay.app/&quot;&gt;SponsorBlock&lt;/a&gt; - skip sponsored segments in videos&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_10&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_10&quot;&gt; &lt;a href=&quot;https://www.returnyoutubedislike.com/&quot;&gt;ReturnYouTubeDislike&lt;/a&gt; - provides video dislike statistics&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_11&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_11&quot;&gt; &lt;a href=&quot;https://dearrow.ajay.app/&quot;&gt;DeArrow&lt;/a&gt; - provides better titles and thumbnails&lt;/label&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/community.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; Contributing &lt;/h2&gt; 
&lt;p&gt;Whether you have ideas, translations, design changes, code cleaning or really heavy code changes, help is always welcome. The more is done, the better it gets! Please respect our &lt;a href=&quot;https://github.com/libre-tube/LibreTube/raw/master/CODE_OF_CONDUCT.md&quot;&gt;Code of Conduct&lt;/a&gt; in order to keep all interactions and discussions healthy.&lt;/p&gt; 
&lt;p&gt;You can open and build the project like any other normal Android project by using Android Studio.&lt;/p&gt; 
&lt;p&gt;Please make sure the title of your pull request and the commit messages follow the &lt;a href=&quot;https://github.com/commitizen/conventional-commit-types/raw/master/index.json&quot;&gt;conventional commit types&lt;/a&gt; (e.g. &lt;code&gt;feat: support for xy&lt;/code&gt;). For instance, the most common commit types are &quot;feat&quot;, &quot;fix&quot;, &quot;refactor&quot;, &quot;ci&quot; and &quot;chore&quot;.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info 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;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;Any issue avoiding the issue template will be ignored and forced to be closed.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info 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;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;The usage of AI to generate issue texts or pull requests is not permitted at this repository and thus such issues / pull requests will be ignored.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/donate.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; Donate &lt;/h2&gt; 
&lt;p&gt;Donations can be made at:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/sponsors/Bnyro&quot;&gt;https://github.com/sponsors/Bnyro&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://liberapay.com/Bnyro&quot;&gt;https://liberapay.com/Bnyro&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Monero (XMR): 47jAx7jMFo5iqy9VgDH98qL1bSK4kr6Pxi7HKWcRwsxbVYJdjxJtyrwXeAUa5MutvcQUmWMBfvAKnPAutDHvWEymUgLm5v8&lt;/li&gt; 
 &lt;li&gt;Ethereum (ETH): 0x599909f54CdC18B997Be8F032341d1Fb14BF4F39&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Contributions in any form are welcome!&lt;/p&gt; 
&lt;h2 align=&quot;left&quot;&gt; 📝 Translations &lt;/h2&gt; 
&lt;a href=&quot;https://hosted.weblate.org/projects/libretube/#languages&quot;&gt; &lt;img src=&quot;https://hosted.weblate.org/widgets/libretube/-/287x66-grey.png&quot; alt=&quot;Translation status&quot; /&gt; &lt;/a&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/ltvnp.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; Differences to NewPipe &lt;/h2&gt; 
&lt;p&gt;With LibreTube, you have the choice to either send all requests directly to YouTube or proxy them via Piped for better privacy. Piped acts as a middleman server between you and YouTube in this case, which prevents YouTube from accessing personal information such as your IP address. Additionally, using Piped allows you to sync your subscriptions between LibreTube and Piped, which can be used on desktop too.&lt;/p&gt; 
&lt;p&gt;While LibreTube only supports YouTube, NewPipe also allows the use of other platforms like SoundCloud, PeerTube, Bandcamp and &lt;a href=&quot;http://media.ccc.de&quot;&gt;media.ccc.de&lt;/a&gt;.&lt;br /&gt; Both are great clients for watching YouTube videos. It depends on the individual&#39;s use case which one fits their needs better.&lt;/p&gt; 
&lt;h2 align=&quot;left&quot;&gt; &lt;sub&gt; &lt;img src=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/assets/readme/privacy.svg?sanitize=true&quot; height=&quot;30&quot; width=&quot;30&quot; /&gt; &lt;/sub&gt; Privacy Policy and Disclaimer &lt;/h2&gt; 
&lt;p&gt;LibreTube aims to protect the privacy of its users. &lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/PRIVACY_POLICY.md&quot;&gt;Our Privacy Policy&lt;/a&gt; gives detailed information on which data the app stores in order to work, how it is being used, and how the project protects your personal information. It is recommended to read the privacy policy of LibreTube as well as the privacy policy of the instance you have chosen inside the app.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.en.html&quot;&gt;&lt;img src=&quot;https://www.gnu.org/graphics/gplv3-127x51.png&quot; alt=&quot;GNU GPLv3 Image&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;LibreTube is &lt;a href=&quot;https://en.wikipedia.org/wiki/Free_software&quot;&gt;Free Software&lt;/a&gt;: You can use, study, share and modify it at your will. The app can be redistributed and/or modified under the terms of the &lt;a href=&quot;https://www.gnu.org/licenses/gpl.html&quot;&gt;GNU General Public License version 3 or later&lt;/a&gt; published by the &lt;a href=&quot;https://www.fsf.org/&quot;&gt;Free Software Foundation&lt;/a&gt;.&lt;/p&gt; 
&lt;div align=&quot;right&quot;&gt; 
 &lt;table&gt;
  &lt;tbody&gt;
   &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;https://raw.githubusercontent.com/libre-tube/LibreTube/master/#start-of-content&quot;&gt;↥ Scroll to top&lt;/a&gt; &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/tbody&gt;
 &lt;/table&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/3e53db6219416afc1808eac98c8706b8eab1534faad332b9ce01057afa0410b8/libre-tube/LibreTube" medium="image" />
      
    </item>
    
  </channel>
</rss>
