Zhi v20250123
https://www.txthinking.com/zhi.html
- Support bot. Bot can send/receive/delete messages and remove users, and can programmatically control whether users can join Chat.
- Bugfix
https://www.txthinking.com/zhi.html
- Support bot. Bot can send/receive/delete messages and remove users, and can programmatically control whether users can join Chat.
- Bugfix
Txthinking
Zhi - A Zero-Trust End-to-End Encrypted Messaging App
A Zero-Trust End-to-End Encrypted Messaging App.
🔥2
Zhi Bot Lib
https://github.com/TxThinkingInc/zhi.js
Usage
https://github.com/TxThinkingInc/zhi.js
Usage
var bot = await Bot.init("Bot Token", [
{
ChatUUID: "",
Key: "",
UserUUID: "",
Name: "Bot",
Avatar: "/root/robot.png",
},
])
await bot.connect()
await bot.send_text("The ChatUUID", "Hello")
bot.close()GitHub
GitHub - TxThinkingInc/zhi.js: Bot of Zhi
Bot of Zhi. Contribute to TxThinkingInc/zhi.js development by creating an account on GitHub.
❤1
Using Zhi as ChatGPT UI
https://github.com/TxThinkingInc/Zhi.ChatGPT
1. Clone
2. Edit b
- bot_token
- openai_api_key
- chats
3. Install bun via nami
4. Run
https://github.com/TxThinkingInc/Zhi.ChatGPT
1. Clone
git clone https://github.com/TxThinkingInc/Zhi.ChatGPT.git
2. Edit b
ot.js
- bot_token
- openai_api_key
- chats
3. Install bun via nami
nami install bun bun.plus
4. Run
bun --preload ~/.nami/bin/_bun_import_url.js bot.js
GitHub
GitHub - TxThinkingInc/Zhi.ChatGPT: ChatGPT Bot on Zhi
ChatGPT Bot on Zhi. Contribute to TxThinkingInc/Zhi.ChatGPT development by creating an account on GitHub.
😱1
ipio v20250203
https://github.com/txthinking/ipio
- --cliToken: Support for non-interactive verification of Brook Plus
https://github.com/txthinking/ipio
- --cliToken: Support for non-interactive verification of Brook Plus
brook-store v20250202
https://github.com/TxThinkingInc/brook-store
- Admin UI: support filter not expired users
https://github.com/TxThinkingInc/brook-store
- Admin UI: support filter not expired users
GitHub
GitHub - TxThinkingInc/brook-store: An implementation of Brook User System
An implementation of Brook User System. Contribute to TxThinkingInc/brook-store development by creating an account on GitHub.
brook for openwrt v20250202
Brook for OpenWrt uses the same script as the GUI. Since OpenWrt will abandon ipk and CLI can edit complex rules more conveniently, I have returned openwrt to CLI. brook for OpenWrt is tested on OpenWrt systems, but may work on other Linux systems, but it is not guaranteed.
- There are two new files: openwrt_linux_amd64 and openwrt_linux_arm64
- Support brook link with token
- [Highlight] Support script same with Brook GUI client
Brook for OpenWrt uses the same script as the GUI. Since OpenWrt will abandon ipk and CLI can edit complex rules more conveniently, I have returned openwrt to CLI. brook for OpenWrt is tested on OpenWrt systems, but may work on other Linux systems, but it is not guaranteed.
- There are two new files: openwrt_linux_amd64 and openwrt_linux_arm64
- Support brook link with token
- [Highlight] Support script same with Brook GUI client
Brook v20250202
https://brook.app
## CLI
brook dnsserver, dohserver, dnsserveroverbrook, server, wsserver, wssserver, quicserver can use script to do more complex thing, such as speed limit for a connection or forward to another brook link and more. brook will pass different global variables to the script at different times, and the script only needs to assign the processing result to the global variable out. Read more: https://brook.app
- --userAPI="": [Highlight] Works with server, wsserver, wssserver, quicserver. When you build your own user system, Brook Server will send GET request to your userAPI to check if token is valid, for example: https://your-api-server.com/a_unpredictable_path. Yes, it is recommended to add an unpredictable path to your https API, of course, you can also use the http api for internal network communication. The request format is https://your-api-server.com/a_unpredictable_path?token=xxx. When the response is 200, the body should be the user's unique identifier, such as user ID; all other status codes are considered to represent an illegitimate user, and in these cases, the body should be a string describing the error. For more information, please read https://github.com/txthinking/brook/blob/master/protocol/user.md
- --userAPIRateLimit="": Works with --userAPI. Limit the request rate per token to the user API by Brook Server, this will reduce the load on the user API. This is especially important when users have expired, and the userAPIValidCacheTime will not cache the requests, resulting in continuous requests to the user API. The default is 0, which means no limitation. For example, setting it to 1 means the rate is limited to 1 request per token per second. The phrase 'per token' means that each token has its own rate limiter, and they do not interfere with each other (default: 1)
- --userAPIValidCacheTime="": Works with --userAPI. Once a token is checked and valid, the userAPI will not be requested to validate again for a certain period (s). A reasonable value must be set, otherwise it will affect the performance of each incoming connection (default: 3600)
- --userLog="": Works with --userAPI. Log, traffic and more. A valid value is file path. Send SIGUSR1 to me to reset the log file on unix system. Mutually exclusive with the --log parameter.
- --pid="": A file path used to store pid. Send SIGUSR1 to me to reset the --log or --userLog file on unix system
- --cliToken="": The CLI Token of your Brook Plus or Brook Business account, get it from https://www.txthinking.com/brook.html
- --script="": [Highlight] Works with server, wsserver, wssserver, quicserver, dnsserver, dohserver, dnsserveroverbrook. https://, http:// or /path/to/file.tengo. Get details at https://brook.app
- --scriptUpdateInterval="": Works with --script. The interval (s) to re-fetch script. The default is 0, which means only fetch once on startup (default: 0)
- All support brook link with token
- Deprecated some parameters
## GUI
- Add Clear and import, more convenient when importing links
- The system time will be checked when connecting to prevent unnoticed abnormalities caused by system time errors
- iOS and macOS: add All Networks & Excludes mode: Include All Networks. But exclude some networks, such as: Apple Push Notification services (APNs) traffic; Wi-Fi Calling, MMS, SMS, and Visual Voicemail; Local network, AirPlay, AirDrop, and CarPlay; XCode Device Communication. And the VPN will not be disconnected between sleep and wake or network changed. Only available for iOS and macOS TUN mode. Note that the Modules still works outside of Excludes
- macOS: fix App Mode memory leak
- MITM: support copy as text. Previously, you could only copy hex
- iOS and macOS: optimized for the latest OS
https://brook.app
## CLI
brook dnsserver, dohserver, dnsserveroverbrook, server, wsserver, wssserver, quicserver can use script to do more complex thing, such as speed limit for a connection or forward to another brook link and more. brook will pass different global variables to the script at different times, and the script only needs to assign the processing result to the global variable out. Read more: https://brook.app
- --userAPI="": [Highlight] Works with server, wsserver, wssserver, quicserver. When you build your own user system, Brook Server will send GET request to your userAPI to check if token is valid, for example: https://your-api-server.com/a_unpredictable_path. Yes, it is recommended to add an unpredictable path to your https API, of course, you can also use the http api for internal network communication. The request format is https://your-api-server.com/a_unpredictable_path?token=xxx. When the response is 200, the body should be the user's unique identifier, such as user ID; all other status codes are considered to represent an illegitimate user, and in these cases, the body should be a string describing the error. For more information, please read https://github.com/txthinking/brook/blob/master/protocol/user.md
- --userAPIRateLimit="": Works with --userAPI. Limit the request rate per token to the user API by Brook Server, this will reduce the load on the user API. This is especially important when users have expired, and the userAPIValidCacheTime will not cache the requests, resulting in continuous requests to the user API. The default is 0, which means no limitation. For example, setting it to 1 means the rate is limited to 1 request per token per second. The phrase 'per token' means that each token has its own rate limiter, and they do not interfere with each other (default: 1)
- --userAPIValidCacheTime="": Works with --userAPI. Once a token is checked and valid, the userAPI will not be requested to validate again for a certain period (s). A reasonable value must be set, otherwise it will affect the performance of each incoming connection (default: 3600)
- --userLog="": Works with --userAPI. Log, traffic and more. A valid value is file path. Send SIGUSR1 to me to reset the log file on unix system. Mutually exclusive with the --log parameter.
- --pid="": A file path used to store pid. Send SIGUSR1 to me to reset the --log or --userLog file on unix system
- --cliToken="": The CLI Token of your Brook Plus or Brook Business account, get it from https://www.txthinking.com/brook.html
- --script="": [Highlight] Works with server, wsserver, wssserver, quicserver, dnsserver, dohserver, dnsserveroverbrook. https://, http:// or /path/to/file.tengo. Get details at https://brook.app
- --scriptUpdateInterval="": Works with --script. The interval (s) to re-fetch script. The default is 0, which means only fetch once on startup (default: 0)
- All support brook link with token
- Deprecated some parameters
## GUI
- Add Clear and import, more convenient when importing links
- The system time will be checked when connecting to prevent unnoticed abnormalities caused by system time errors
- iOS and macOS: add All Networks & Excludes mode: Include All Networks. But exclude some networks, such as: Apple Push Notification services (APNs) traffic; Wi-Fi Calling, MMS, SMS, and Visual Voicemail; Local network, AirPlay, AirDrop, and CarPlay; XCode Device Communication. And the VPN will not be disconnected between sleep and wake or network changed. Only available for iOS and macOS TUN mode. Note that the Modules still works outside of Excludes
- macOS: fix App Mode memory leak
- MITM: support copy as text. Previously, you could only copy hex
- iOS and macOS: optimized for the latest OS
GitHub
brook/protocol/user.md at master · txthinking/brook
A cross-platform programmable network tool. Contribute to txthinking/brook development by creating an account on GitHub.
❤3
joker v20250220
https://github.com/txthinking/joker
- Remove restart subcommand
Because some programs may take a long time to stop, some are quick, some take a few seconds, and some may take dozens of seconds to clean up data before exiting. Only you knows. To keep the joker small, you can choose the following solutions.
Solutions
- You can stop it; sleep for the estimated time; and then rerun the program
- Or try https://github.com/txthinking/z, which can wait for the program to completely exit before rerunning it
https://github.com/txthinking/joker
- Remove restart subcommand
Because some programs may take a long time to stop, some are quick, some take a few seconds, and some may take dozens of seconds to clean up data before exiting. Only you knows. To keep the joker small, you can choose the following solutions.
Solutions
- You can stop it; sleep for the estimated time; and then rerun the program
- Or try https://github.com/txthinking/z, which can wait for the program to completely exit before rerunning it
GitHub
GitHub - txthinking/joker: joker can turn process into daemon. Zero-Configuration
joker can turn process into daemon. Zero-Configuration - txthinking/joker
🔥2❤1
因为 Brook v20250202 服务端也支持脚本了,并且细粒度到连接级别,即可以针对某些连接进行单独处理,比如:阻断,重写目的地,指定 DNS/DOH 来解析domainaddress,限速,转发到指定的 brooklink 代为呼出,使用本机指定 IP 来呼出。
比如我们只想将让发往 openai 的请求,转发到 warp 来解锁 ChatGPT 针对 IDC IP 的封锁,但希望发往其他目的地的请求仍用本机呼出。就可以如此这般:
https://www.txthinking.com/talks/articles/brook-cloudflare-warp.article
https://www.txthinking.com/talks/articles/brook-cloudflare-warp-en.article
ChatGPT 封锁了你的 VPS IPv4,但有可能没有封锁你的 VPS IPv6,若是如此的话还有另外一个方案,就是可以使用 dialwith 来指定使用本机 v6 IP 来呼出发往 openai 的请求。
比如我们只想将让发往 openai 的请求,转发到 warp 来解锁 ChatGPT 针对 IDC IP 的封锁,但希望发往其他目的地的请求仍用本机呼出。就可以如此这般:
https://www.txthinking.com/talks/articles/brook-cloudflare-warp.article
https://www.txthinking.com/talks/articles/brook-cloudflare-warp-en.article
ChatGPT 封锁了你的 VPS IPv4,但有可能没有封锁你的 VPS IPv6,若是如此的话还有另外一个方案,就是可以使用 dialwith 来指定使用本机 v6 IP 来呼出发往 openai 的请求。
🔥1
Zhi: new version released
https://www.txthinking.com/zhi.html
- Search: Support searching messages in Chat
- Backup & Restore: Support backup and restore Chats
- iOS and Android: Now use the speaker by default during Meeting
- iOS and Android: Support switching between front and rear cameras during Meeting
- Meeting: Support opening Chat during Meeting
- iOS, macOS and Android: Turn on automatic clearing of notification lists
- Bot: Support custom User Token when user join your Chat
- Some other optimizations
https://www.txthinking.com/zhi.html
- Search: Support searching messages in Chat
- Backup & Restore: Support backup and restore Chats
- iOS and Android: Now use the speaker by default during Meeting
- iOS and Android: Support switching between front and rear cameras during Meeting
- Meeting: Support opening Chat during Meeting
- iOS, macOS and Android: Turn on automatic clearing of notification lists
- Bot: Support custom User Token when user join your Chat
- Some other optimizations
Txthinking
Zhi - A Zero-Trust End-to-End Encrypted Messaging App
A Zero-Trust End-to-End Encrypted Messaging App.
👍1
🔥4
Zhi for Windows has been in testing for several months and has now been released.
https://www.txthinking.com/zhi.html
https://www.txthinking.com/zhi.html
Txthinking
Zhi - A Zero-Trust End-to-End Encrypted Messaging App
A Zero-Trust End-to-End Encrypted Messaging App.
🔥1
👍2❤1
👏1
Upload file and get link
https://www.txthinking.com/filelink.html
我是如何在服务器之间传文件的
https://www.txthinking.com/talks/articles/how-i-transfer-file-between-servers.article
https://www.txthinking.com/filelink.html
我是如何在服务器之间传文件的
https://www.txthinking.com/talks/articles/how-i-transfer-file-between-servers.article
Txthinking
File Link
Upload file and get link
👍1👏1
# Brook v20250808
## Changelog
Read on blog
## Docs
https://www.txthinking.com/brook.html
## Brook Script Gallery
https://brook.app
## OpenWrt
https://www.txthinking.com/talks/articles/brook-openwrt-one-en.article
## ipio
The CLI version of Brook GUI
https://github.com/txthinking/ipio
## brook-store
An implementation of Brook User System
https://github.com/TxThinkingInc/brook-store
## Changelog
Read on blog
## Docs
https://www.txthinking.com/brook.html
## Brook Script Gallery
https://brook.app
## OpenWrt
brook.openwrt_linux_arm64 and brook.openwrt_linux_amd64https://www.txthinking.com/talks/articles/brook-openwrt-one-en.article
## ipio
The CLI version of Brook GUI
https://github.com/txthinking/ipio
## brook-store
An implementation of Brook User System
https://github.com/TxThinkingInc/brook-store
Txthinking
Shiliew - Stable Network Services
Shiliew focuses on providing stable network services.
👍1
ZH
# 我已经为我的所有产品的 Windows 客户端购买了代码签名证书
> Updated at: 2025-08-29
在此之前,因为代码签名证书不仅不便宜(每年数百美元或超过一千美元)关键使用也很麻烦。所以无论是 Brook,Shiliew,Zhi 还是 Meeting 的 Windows 客户端,我都选择了方便的自签证书,然而自签证书在安装时都需要用户自己手动信任证书才能继续安装,就像这篇文章所描述的那样。
而现在,我已经为公司购买了代码签名证书,也就是意味着以后安装我们的任何 Windows 客户端,都无需再手动信任证书了。
## 如果曾经安装过以上某个自签名客户端
因为 Windows 可能会将不同签名的客户端视为不同的应用,所以如果你曾经安装过以上某个自签名客户端,那么:
1. 可能需要先卸载老的客户端
2. 再安装新的客户端,如果新安装的客户端安装之后无法打开,可能需要重启下电脑。
## 如果你是有签名需求的开发者
如果你有自己开发的软件,又搞不定签名,你可以在 Zhi VIP Chat 群组里寻求帮助,或许我可以提供帮助。以上任何一个客户端内都可以进入 Zhi VIP Chat 群组。
---
EN
# I've purchased code signing certificates for all my product Windows apps.
> Updated at: 2025-08-29
Before, code signing certificates were not only expensive (hundreds of dollars or over a thousand per year) but also cumbersome to use. So, for the Windows clients for Brook,Shiliew,Zhi and Meeting, I opted for convenient self-signed certificates. However, self-signed certificates require users to manually trust the certificate before installation can proceed, as described in this article.
Now, I've purchased code signing certificate for my company, which means you no longer need to manually trust the certificate when installing any of our Windows clients.
## If you've installed any of the self-signed clients listed above
Because Windows may treat clients with different signatures as separate applications, if you've installed any of the self-signed clients listed above, then:
1. You may need to uninstall the old client first.
2. Then install the new client. If the new client doesn't open after installation, you may need to restart your computer.
## If you're a developer with signing needs
If you have developed your own software and are having trouble signing it, you can ask for help in the Zhi VIP Chat group. I might be able to help. You can access the Zhi VIP Chat group from any of the above clients.
# 我已经为我的所有产品的 Windows 客户端购买了代码签名证书
> Updated at: 2025-08-29
在此之前,因为代码签名证书不仅不便宜(每年数百美元或超过一千美元)关键使用也很麻烦。所以无论是 Brook,Shiliew,Zhi 还是 Meeting 的 Windows 客户端,我都选择了方便的自签证书,然而自签证书在安装时都需要用户自己手动信任证书才能继续安装,就像这篇文章所描述的那样。
而现在,我已经为公司购买了代码签名证书,也就是意味着以后安装我们的任何 Windows 客户端,都无需再手动信任证书了。
## 如果曾经安装过以上某个自签名客户端
因为 Windows 可能会将不同签名的客户端视为不同的应用,所以如果你曾经安装过以上某个自签名客户端,那么:
1. 可能需要先卸载老的客户端
2. 再安装新的客户端,如果新安装的客户端安装之后无法打开,可能需要重启下电脑。
## 如果你是有签名需求的开发者
如果你有自己开发的软件,又搞不定签名,你可以在 Zhi VIP Chat 群组里寻求帮助,或许我可以提供帮助。以上任何一个客户端内都可以进入 Zhi VIP Chat 群组。
---
EN
# I've purchased code signing certificates for all my product Windows apps.
> Updated at: 2025-08-29
Before, code signing certificates were not only expensive (hundreds of dollars or over a thousand per year) but also cumbersome to use. So, for the Windows clients for Brook,Shiliew,Zhi and Meeting, I opted for convenient self-signed certificates. However, self-signed certificates require users to manually trust the certificate before installation can proceed, as described in this article.
Now, I've purchased code signing certificate for my company, which means you no longer need to manually trust the certificate when installing any of our Windows clients.
## If you've installed any of the self-signed clients listed above
Because Windows may treat clients with different signatures as separate applications, if you've installed any of the self-signed clients listed above, then:
1. You may need to uninstall the old client first.
2. Then install the new client. If the new client doesn't open after installation, you may need to restart your computer.
## If you're a developer with signing needs
If you have developed your own software and are having trouble signing it, you can ask for help in the Zhi VIP Chat group. I might be able to help. You can access the Zhi VIP Chat group from any of the above clients.
Txthinking
Brook - A cross-platform programmable network tool
A cross-platform programmable network tool.
❤2
I've released a foolproof app for downloading old versions of iOS apps.
我发布了一款下载老版本 iOS app 的傻瓜式应用。
Video(视频)
https://www.youtube.com/watch?v=xuX6alPg1yQ
Download(下载)
https://www.txthinking.com/iosoldappdownloader.html
我发布了一款下载老版本 iOS app 的傻瓜式应用。
Video(视频)
https://www.youtube.com/watch?v=xuX6alPg1yQ
Download(下载)
https://www.txthinking.com/iosoldappdownloader.html
YouTube
iOS Old App Downloader
iOS Old App Downloader: https://www.txthinking.com/iosoldappdownloader.html
👍2❤1
Brook Business: Powering Your Own Branded Client
https://www.txthinking.com/talks/articles/brook-business-en.article
Brook Business: 让你拥有自己品牌的 Brook 客户端
https://www.txthinking.com/talks/articles/brook-business.article
https://www.txthinking.com/talks/articles/brook-business-en.article
Brook Business: 让你拥有自己品牌的 Brook 客户端
https://www.txthinking.com/talks/articles/brook-business.article
更新或发布了几款网络应用 (买断制):
【Nan】
https://www.txthinking.com/nan.html
Nan - 工作在 TCP/IP 层(非系统代理)的独立抓包解密 HTTPS 和 WebSocket 的应用
Nan - A standalone application for packet capture and decryption of HTTPS and WebSocket, operating at the TCP/IP layer (non-system proxy)
Nan for iOS Video
https://www.youtube.com/watch?v=26cVSL-PLAg
Nan for macOS Video:
https://www.youtube.com/watch?v=5bVmnj4aHQg
购买过之前的 Wireshark Helper 可直接升级. 操作没那么复杂了, 无需电脑命令行启动辅助程序了.
【mitmproxy client】
https://www.txthinking.com/mitmproxy.html
捕获所有手机 HTTP 和 HTTPS 解密,并到 mitmproxy。
Capture all mobile HTTP and decrypt HTTPS into mitmproxy, SSL/TLS certificates for interception are generated on the fly.
mitmproxy client Video
https://www.youtube.com/watch?v=y1A6fmXSbTc
购买过之前的 mitmproxy helper 可直接升级.
【Network Activity Monitor】
https://www.txthinking.com/networkactivitymonitor.html
傻瓜式查看系统或应用的发出的 DNS, TCP, and UDP 地址
Monitor all network request of the entire system or application, such as DNS, TCP, and UDP
Network Activity Monitor for macOS Video
https://www.youtube.com/watch?v=0d7cDPFv_jI
Network Activity Monitor for iOS Video
https://www.youtube.com/watch?v=2q-XIio6icA
Network Activity Monitor for Android Video
https://www.youtube.com/watch?v=I-GGDs1i18g
Network Activity Monitor for Windows Video
https://www.youtube.com/watch?v=LvhxfyHsbp4
【iOS Old App Downloader】
https://www.txthinking.com/iosoldappdownloader.html
傻瓜化下载老版本 iOS App
Download any older version of the iOS app
iOS Old App Downloader Video
https://www.youtube.com/watch?v=xuX6alPg1yQ
【Nan】
https://www.txthinking.com/nan.html
Nan - 工作在 TCP/IP 层(非系统代理)的独立抓包解密 HTTPS 和 WebSocket 的应用
Nan - A standalone application for packet capture and decryption of HTTPS and WebSocket, operating at the TCP/IP layer (non-system proxy)
Nan for iOS Video
https://www.youtube.com/watch?v=26cVSL-PLAg
Nan for macOS Video:
https://www.youtube.com/watch?v=5bVmnj4aHQg
购买过之前的 Wireshark Helper 可直接升级. 操作没那么复杂了, 无需电脑命令行启动辅助程序了.
【mitmproxy client】
https://www.txthinking.com/mitmproxy.html
捕获所有手机 HTTP 和 HTTPS 解密,并到 mitmproxy。
Capture all mobile HTTP and decrypt HTTPS into mitmproxy, SSL/TLS certificates for interception are generated on the fly.
mitmproxy client Video
https://www.youtube.com/watch?v=y1A6fmXSbTc
购买过之前的 mitmproxy helper 可直接升级.
【Network Activity Monitor】
https://www.txthinking.com/networkactivitymonitor.html
傻瓜式查看系统或应用的发出的 DNS, TCP, and UDP 地址
Monitor all network request of the entire system or application, such as DNS, TCP, and UDP
Network Activity Monitor for macOS Video
https://www.youtube.com/watch?v=0d7cDPFv_jI
Network Activity Monitor for iOS Video
https://www.youtube.com/watch?v=2q-XIio6icA
Network Activity Monitor for Android Video
https://www.youtube.com/watch?v=I-GGDs1i18g
Network Activity Monitor for Windows Video
https://www.youtube.com/watch?v=LvhxfyHsbp4
【iOS Old App Downloader】
https://www.txthinking.com/iosoldappdownloader.html
傻瓜化下载老版本 iOS App
Download any older version of the iOS app
iOS Old App Downloader Video
https://www.youtube.com/watch?v=xuX6alPg1yQ
Txthinking
Nan
Packet Capture. Decrypt HTTPS and WebSocket. | 抓包解密 HTTPS 和 WebSocket
👍1