2026-07-10 08:38:54
Microsoft Rewards 是一项免费会员计划,只需使用 Microsoft 产品和服务即可赚取积分。积分可兑换礼品卡、抽奖资格、慈善捐赠等奖励。
这项计划已经上线多年了!最近几年积分能兑换天猫礼品卡,中石化加油卡等等,非常受国内童鞋的喜爱!
https://51.ruyo.net/bing-rewards
方法1:获取积分方式也非常简单!按要求完成签到,搜索,日常任务,每日任务等等,连续签到和完成任务积分更多。每天轻轻松松获取 200+积分!
一般情况2个月多即可兑换价值100元的礼品卡!
方法2:邀请好友参与活动。只要被邀请的好友完成打卡任务获取积分,邀请人也能获得积分。
目前网上有自动化Python脚本,也有利用篡改猴的脚本。博主还是建议每天花几分钟操作一下。实在没时间可以试一试下面的。
脚本地址:https://greasyfork.org/zh-CN/scripts/532315-%E5%BE%AE%E8%BD%AFbing-%E5%BF%85%E5%BA%94%E7%A7%AF%E5%88%86%E8%87%AA%E5%8A%A8%E8%84%9A%E6%9C%AC-microsoft-bing-rewards-script
在Edge浏览器安装扩展篡改猴后,安装以上脚本(关于篡改猴主要注意事项,之前的文章有介绍:https://51.ruyo.net/19346.html)。
打开必应搜索页面(cn.bing.com/search 或 www.bing.com/search)。
先手动任意搜索一次,脚本会在页面右下角显示一个浮动工具栏,自动开始搜索任务。
账号所属国家地区有误?主要在在兑换礼品的时候。如果出现下图提示:在外出?你正在预览在你的初始国家/地区以外的目录。你可以查看物品,但无法兑换。
说明你的账号没有被标记到中国大陆,不能兑换各种适合国内的礼品卡。
解决方案1:换账号,如果你是刚开始弄,可以直接重新注册一个账号!
解决方案2:检查以下2个地址,登录账号查看所属国家地区是否正确?第二个地址是账单地址,只保留一个中国大陆的账单 地址。
account.microsoft.com/profile
account.microsoft.com/billing/addresses
重新登录账号!
解决方案3:联系微软客服:rewards.bing.com/support,发送内容请客服帮忙修改所属国家地区。
2026-07-02 08:40:52
Pages.dev 快速搭建网站, 速度超快。 Cloudflare Pages 是一个 JAMstack 平台,供前端开发人员协作和部署网站。
https://pages.dev
| 项目 | 免费版限制 |
|---|---|
| Pages 项目数 | 最多约 100 个项目(软限制,可申请提高) |
| 每月构建(Build) | 500 次/月 |
| 并发构建 | 1 个 |
| 每个站点文件数 | 20,000 个文件) |
| 单个文件大小 | 25 MB |
| 自定义域名 | 支持,可绑定多个自定义域名 |
| HTTPS | 免费自动签发 SSL 证书 |
| CDN | 全球 CDN,无需额外配置 |
| 带宽 | 官方未设置固定带宽配额,但要求符合服务条款,不适合视频、大文件分发等用途 |
1,访问官网注册账号,如已注册Cloudflare,可直接登录!
2,点击 【Workers 和 Pages】或者访问:dash.cloudflare.com/?account=pages
3,右侧点击【创建应用程序】
4,这里必须如图点击访问:【想要部署Pages? 开始使用 】,要不然就是创建的Worker
5,项目名称,下面会显示分配的 .pages.dev 域名;如果你的项目名称没被注册就会注册一个专属的域名!
6,然后上传静态文件,然后点击【部署站点】
7,部署成功后,可绑定自定义域名等操作!
ruyonet.pages.dev
1,大家可以抓紧抢注一个自己心仪的 *.pages.dev 域名。
注意:.pages.dev 域名由 Cloudflare 自动分配,无法提前注册或抢注,项目名未被占用时才可生成对应子域名!
2,Pages支持连接Github仓库部署项目。
3,100个站点不够?访问这里可申请提高额度:forms.gle/eX6pXvit1wBv77Yw5
4,部署的站点国内可以访问,不过速度一般。
5,为什么看到的是 workers.dev? 因为新版 Cloudflare 正在统一 Pages 和 Workers 平台。
2026-06-30 08:40:10
最近体验了一下 UU远程 的新版本,发现新增了一个 端口映射 功能。
这个功能对开发和运维人员来说非常实用。很多时候,我们需要将远程服务器或内网设备上的某个服务(例如 Docker 管理平台、数据库等)映射到本地进行访问和调试。
以前通常会选择 FRP、NPS 等内网穿透方案,但前提是需要准备一台拥有公网 IP 的服务器。用一些免费的内网穿透网速又慢的一批。
而 UU远程 的端口映射则省去了这些步骤,无需公网 IP,也无需自行部署穿透服务,只要主控端和被控端登录同一个账号,即可快速完成端口映射,使用体验非常不错。
1,UU远程需要更新到最新版本(26年5月以后的版本)
2,必须登录同一个账号;
3,目前支持Windows主控端;
4,仅支持TCP协议端口映射;
5,支持穿透被控端内网所有IP端口;
这里我们演示一下,如何在公司的电脑上,访问家里的OpenWrt
家庭PC 的IP:192.168.31.110
OpenWrt的IP:192.168.31.199
OpenWrt 管理平台端口:80
1,我的设备 - 选择被控设备(家庭PC) - 更多 - 端口映射
2,名称随意,本地端口(随意,没有被占用即可),目标地址(被控端内网IP,或者内网其他设备IP),目标端口
3,映射成功后,本地直接访问 127.0.0.1:13398 即可!
在家庭可完全打通公司内网,堪比VPN;当然这种操作是存在风险的!一定要谨慎!
1,在公司的电脑上启动一个代理软件,之前博主推荐过不少。最近博主使用3Proxy比较多:内网服务器利用跳板机代理访问公网:3Proxy
2,启动3Proxy后,在UU远程中配置一个端口转发,将被控端的808端口穿透出来
3,系统 - 网络和Internet - 代理 - 手动设置代理 - 地址 127.0.0.1 端口填写映射的端口
点击保存后网络就通了!如果你想访问公司内网IP,比如:192.168.1.1 仅需将下图中的文本框内的:192.168.* 删除掉即可!
这样192.168的IP也可以走代理了!
另一个妙用!
此处内容需要关注微信才能查看
端口映射一定要确保安全,切勿随意穿透。避免不必要的麻烦!
2026-06-29 08:28:23
Agent Mail,是 QQ 邮箱团队为 Agent 打造的专属邮箱服务。与个人邮箱隔离,原生适配 Agent,助力你安全、高效地使用 Agent 收发邮件。
看似非常不错的功能,之前网易也推出类似服务:ClawEmail 并未激起太大的水花~
agent.qq.com
1,仅限微信扫码登录
2,同时拥有2个 @agent.qq.com 邮箱
3,每个邮箱每天限制发送 50封邮件,收信不限制,1Gb容量
4,发信必须使用Agent才可以
5,邮箱前缀随机分配,也可修改为自己心仪的前缀(抓紧选自己的心仪前缀)
目前平台还未强制要求实名认证!实名认证仅需填写姓名,必须和微信实名姓名一致即完成实名。
1,首先用腾讯自家的 WorkBuddy,配置好之后,确实可以发送邮件!没有太多难度!
2,这里推荐大家体验一下华为云的 AI Shell。历史文章:华为云AI Shell体验:免费4核7G云服务器,附自动保活脚本
仅需将提示词在AI Shell中发给AI
请阅读 https://agent.qq.com/doc/cli-setup.md 文档,按照步骤为我安装并配置 Agent Mail CLI。
可用使用代码封装一下,利用API发信!
"""
Agently Mail API - Python wrapper for agently-cli email operations.
Usage:
from agently_mail import send_email, list_messages, read_message, search_messages
# Send email
result = send_email(
to=["[email protected]"],
subject="Hello",
body="<p>This is a test email.</p>"
)
# List messages
messages = list_messages(limit=10)
"""
import subprocess
import json
import os
from typing import Optional, List, Dict, Any, Union
def _run_cli(args: List[str], input_data: Optional[str] = None) -> Dict[str, Any]:
"""
Execute agently-cli command and return parsed JSON result.
Args:
args: Command arguments (e.g., ["message", "+send", "--to", "[email protected]"])
input_data: Optional stdin data
Returns:
Parsed JSON response as dict
Raises:
RuntimeError: If command fails
"""
cmd = ["agently-cli"] + args
result = subprocess.run(
cmd,
capture_output=True,
text=True,
input=input_data,
timeout=60
)
if result.stdout:
try:
return json.loads(result.stdout)
except json.JSONDecodeError:
pass
if result.returncode != 0:
raise RuntimeError(f"CLI error: {result.stderr or 'Unknown error'}")
return {"ok": True, "data": None}
def send_email(
to: Union[str, List[str]],
subject: str,
body: Optional[str] = None,
body_file: Optional[str] = None,
cc: Optional[Union[str, List[str]]] = None,
bcc: Optional[Union[str, List[str]]] = None,
attachments: Optional[Union[str, List[str]]] = None,
body_format: Optional[str] = None,
dry_run: bool = False,
auto_confirm: bool = True
) -> Dict[str, Any]:
"""
Send an email via agently-cli.
Args:
to: Recipient email address(es). Required.
subject: Email subject. Required.
body: Email body content (HTML or plain text).
body_file: Path to file containing email body (alternative to body).
cc: CC recipient(s).
bcc: BCC recipient(s).
attachments: File path(s) to attach.
body_format: Force body format ('plain' or 'html').
dry_run: Print API calls without executing.
auto_confirm: Automatically confirm and send (default True).
Returns:
Dict with 'ok' and 'data' fields containing send result.
Example:
result = send_email(
to=["[email protected]", "[email protected]"],
subject="Meeting Tomorrow",
body="<p>Hi all,</p><p>Let's meet at 10am.</p>",
cc=["[email protected]"]
)
"""
# Normalize recipients to list
if isinstance(to, str):
to = [to]
if cc and isinstance(cc, str):
cc = [cc]
if bcc and isinstance(bcc, str):
bcc = [bcc]
if attachments and isinstance(attachments, str):
attachments = [attachments]
# Build command arguments
args = ["message", "+send"]
for recipient in to:
args.extend(["--to", recipient])
args.extend(["--subject", subject])
if body:
args.extend(["--body", body])
elif body_file:
args.extend(["--body-file", body_file])
else:
raise ValueError("Either 'body' or 'body_file' must be provided")
if cc:
for c in cc:
args.extend(["--cc", c])
if bcc:
for b in bcc:
args.extend(["--bcc", b])
if attachments:
for att in attachments:
args.extend(["--attachment", att])
if body_format:
args.extend(["--body-format", body_format])
if dry_run:
args.append("--dry-run")
# First call - get confirmation token
result = _run_cli(args)
# Check if confirmation is required
if result.get("ok") and result.get("data", {}).get("confirmation_required"):
confirmation_token = result["data"].get("confirmation_token")
if not auto_confirm or not confirmation_token:
# Return for manual confirmation
return result
# Second call - confirm and send
args.extend(["--confirmation-token", confirmation_token])
result = _run_cli(args)
return result
def list_messages(
limit: Optional[int] = None,
folder: Optional[str] = None,
unread_only: bool = False
) -> Dict[str, Any]:
"""
List emails in inbox.
Args:
limit: Maximum number of messages to return.
folder: Folder to list (e.g., 'inbox', 'sent').
unread_only: Only return unread messages.
Returns:
Dict with 'ok' and 'data' fields containing message list.
"""
args = ["message", "+list"]
if limit:
args.extend(["--limit", str(limit)])
if folder:
args.extend(["--folder", folder])
if unread_only:
args.append("--unread-only")
return _run_cli(args)
def read_message(message_id: str) -> Dict[str, Any]:
"""
Read a specific email message.
Args:
message_id: The message ID to read.
Returns:
Dict with 'ok' and 'data' fields containing message content.
"""
args = ["message", "+read", "--id", message_id]
return _run_cli(args)
def search_messages(query: str, limit: Optional[int] = None) -> Dict[str, Any]:
"""
Search emails by keyword.
Args:
query: Search keyword.
limit: Maximum number of results.
Returns:
Dict with 'ok' and 'data' fields containing search results.
"""
args = ["message", "+search", "--q", query]
if limit:
args.extend(["--limit", str(limit)])
return _run_cli(args)
def reply_to_message(
message_id: str,
body: str,
reply_all: bool = False
) -> Dict[str, Any]:
"""
Reply to an email message.
Args:
message_id: The message ID to reply to.
body: Reply body content.
reply_all: Reply to all recipients.
Returns:
Dict with 'ok' and 'data' fields containing reply result.
"""
args = ["message", "+reply", "--id", message_id, "--body", body]
if reply_all:
args.append("--reply-all")
result = _run_cli(args)
# Handle two-phase confirmation
if result.get("ok") and result.get("data", {}).get("confirmation_required"):
confirmation_token = result["data"].get("confirmation_token")
if confirmation_token:
args.extend(["--confirmation-token", confirmation_token])
result = _run_cli(args)
return result
def forward_message(
message_id: str,
to: Union[str, List[str]],
body: Optional[str] = None
) -> Dict[str, Any]:
"""
Forward an email message.
Args:
message_id: The message ID to forward.
to: Recipient email address(es).
body: Optional additional body content.
Returns:
Dict with 'ok' and 'data' fields containing forward result.
"""
if isinstance(to, str):
to = [to]
args = ["message", "+forward", "--id", message_id]
for recipient in to:
args.extend(["--to", recipient])
if body:
args.extend(["--body", body])
result = _run_cli(args)
# Handle two-phase confirmation
if result.get("ok") and result.get("data", {}).get("confirmation_required"):
confirmation_token = result["data"].get("confirmation_token")
if confirmation_token:
args.extend(["--confirmation-token", confirmation_token])
result = _run_cli(args)
return result
def upload_attachment(file_path: str) -> Dict[str, Any]:
"""
Upload a file as attachment.
Args:
file_path: Path to the file to upload.
Returns:
Dict with 'ok' and 'data' fields containing upload result.
"""
args = ["attachment", "+upload", "--file", file_path]
return _run_cli(args)
def download_attachment(message_id: str, attachment_id: str, output_path: Optional[str] = None) -> Dict[str, Any]:
"""
Download an attachment from a message.
Args:
message_id: The message ID.
attachment_id: The attachment ID.
output_path: Optional path to save the file.
Returns:
Dict with 'ok' and 'data' fields containing download result.
"""
args = ["attachment", "+download", "--msg", message_id, "--att", attachment_id]
if output_path:
args.extend(["--output", output_path])
return _run_cli(args)
def get_user_info() -> Dict[str, Any]:
"""
Get current user info and alias list.
Returns:
Dict with 'ok' and 'data' fields containing user info.
"""
return _run_cli(["+me"])
# Convenience function for AI callers
def mail_send(
to: Union[str, List[str]],
subject: str,
body: str,
cc: Optional[Union[str, List[str]]] = None,
bcc: Optional[Union[str, List[str]]] = None
) -> Dict[str, Any]:
"""
Simple send function optimized for AI callers.
This is a simplified wrapper around send_email() for easy AI integration.
Args:
to: Recipient email address(es).
subject: Email subject.
body: Email body (HTML supported).
cc: Optional CC recipient(s).
bcc: Optional BCC recipient(s).
Returns:
Result dict with 'ok' boolean and 'data' or 'error'.
Example:
result = mail_send(
to="[email protected]",
subject="Hello",
body="<p>Hi there!</p>"
)
if result.get("ok"):
print("Email sent successfully!")
else:
print(f"Failed: {result}")
"""
try:
return send_email(
to=to,
subject=subject,
body=body,
cc=cc,
bcc=bcc,
auto_confirm=True
)
except Exception as e:
return {"ok": False, "error": str(e)}
if __name__ == "__main__":
# Demo usage
import sys
if len(sys.argv) < 4:
print("Usage: python agently_mail.py <to> <subject> <body>")
print("Example: python agently_mail.py [email protected] 'Hello' '<p>Hi!</p>'")
sys.exit(1)
result = mail_send(
to=sys.argv[1],
subject=sys.argv[2],
body=sys.argv[3]
)
print(json.dumps(result, indent=2, ensure_ascii=False))
# Agently Mail Python API
Python 封装的 Agent Mail 发信 API,可直接被 AI 调用。
## 快速开始
```python
from agently_mail import mail_send, send_email, list_messages, read_message, search_messages
# 简单发信(推荐 AI 调用)
result = mail_send(
to="[email protected]",
subject="Hello",
body="<p>这是一封测试邮件。</p>"
)
if result.get("ok"):
print("发送成功!")
else:
print(f"发送失败: {result}")
```
## API 函数
### `mail_send()` - 简单发信(AI 调用推荐)
```python
result = mail_send(
to="[email protected]", # 收件人(字符串或列表)
subject="邮件主题", # 主题
body="<p>邮件正文</p>", # 正文(支持 HTML)
cc="[email protected]", # 抄送(可选)
bcc="[email protected]" # 密送(可选)
)
```
### `send_email()` - 完整发信
```python
result = send_email(
to=["[email protected]", "[email protected]"],
subject="会议通知",
body="<p>各位好,</p><p>明天 10 点开会。</p>",
cc=["[email protected]"],
attachments=["./report.pdf"], # 附件
auto_confirm=True # 自动确认发送
)
```
### `list_messages()` - 列出邮件
```python
result = list_messages(limit=10, unread_only=True)
```
### `read_message()` - 读取邮件
```python
result = read_message("msg_xxxxx")
```
### `search_messages()` - 搜索邮件
```python
result = search_messages("关键词", limit=10)
```
### `reply_to_message()` - 回复邮件
```python
result = reply_to_message("msg_xxxxx", "收到,谢谢!")
```
### `forward_message()` - 转发邮件
```python
result = forward_message("msg_xxxxx", to="[email protected]")
```
### `get_user_info()` - 获取用户信息
```python
result = get_user_info()
# 返回邮箱地址、配额、权限等信息
```
## 命令行使用
```bash
python agently_mail.py [email protected] "主题" "<p>正文</p>"
```
## 返回格式
所有函数返回统一格式:
```python
{
"ok": True, # 是否成功
"data": { ... } # 返回数据
}
```
失败时:
```python
{
"ok": False,
"error": "错误信息"
}
```
## 依赖
- Python 3.6+
- agently-cli(已安装并授权)
📁 文件结构
```
agent-mail-guide/
├── README.md # 主文档(安装指南 + 目录)
├── install.sh # 一键安装脚本
├── agent_mail_api.py # Python API 封装(完整)
├── agent_prompt_template.md # Agent 提示词模板
└── examples.py # 使用示例代码
```
📦 内容概览
1. CLI 安装指南 (README.md + install.sh)
• 前置要求检查
• 四步安装流程
• 常用命令速查表
2. Python API 封装 (agent_mail_api.py)
• AgentMailAPI 类:完整封装所有 CLI 操作
• 类型安全:使用 Enum 和 dataclass
• 错误处理:自定义异常类,根据 exit code 分类处理
• 两阶段确认:自动管理 confirmation_token
• 便捷函数:quick_send(), quick_search()
3. Agent 提示词模板 (agent_prompt_template.md)
• 完整系统提示词:可直接用于 Agent 系统提示
• 场景化片段:搜索、发送、回复、下载等场景
• Python 集成提示词:API 使用说明
• 快速集成模板:最小集成 + 完整集成
• 常见问题处理:FAQ 格式
🚀 快速使用
```bash
# 安装
cd agent-mail-guide
bash install.sh
# 授权
agently-cli auth login
# Python 使用
python examples.py
```
所有文档已整理完成,可直接用于其他 Agent 集成!
2026-06-26 08:40:38
最近腾讯推出了 Agent Mail,原本打算体验一番。不过考虑到需要本地运行 Agent,多少还是有点折腾。
如果你只是想体验 AI Agent 在终端中的能力,其实华为云还有一个容易被忽略的产品:AI Shell。
无需本地部署,打开浏览器即可使用,体验相当不错。
https://developer.huaweicloud.com/aishell.html
云端作业环境一键拉起,开箱即用 一键快速拉起专属云端作业环境,预置AI CLI、精选华为云资源管理最佳实践等技能,无需复杂配置,开箱即用。容器运行环境免费使用,搭载多款预置大模型,轻松开展各类云上作业。
AI Shell 本质上就是一个集成 AI 能力的 Web Shell。
打开浏览器即可获得一台云端 Linux,无需安装任何环境,同时还内置了 AI CLI 和华为云 Skills。
你可以直接通过自然语言让 AI 帮你执行 Shell 命令,也可以退出 AI Chat,当成一台普通 Linux 使用。
这里华为云深度集成了自家的Skills(skills.huaweicloud.com)
每个账户同时可打开 3 个 Shell(相当于同时拥有 3 台临时云端 Linux服务器)。
每个 Shell 默认有效期 6 小时,到期前可点击 延期 按钮继续使用,否则容器会自动销毁。
4核心 + 7G内存 + 130G磁盘 + Huawei Cloud EulerOS 2.0 系统 + 北京数据中心
----------------------------------------------------------------------
CPU Model : CPU model not detected
CPU Cores : 4 @ 2900.0000 MHz
AES-NI : ✓ Enabled
VM-x/AMD-V : ✗ Disabled
Total Disk : 136.1 GB (8.6 GB Used)
Total RAM : 7.2 GB (990.6 MB Used)
System Uptime : 3 days, 5 hour 9 min
Load Average : 0.22, 0.20, 0.18
OS : Huawei Cloud EulerOS 2.0 (aarch64)
Arch : aarch64 (64 Bit)
Kernel : 5.10.0-182.0.0.95.r3353_273.hce2.aarch64
TCP Congestion Ctrl: cubic
Virtualization : DOCKER
IPv4/IPv6 : ✓ Online / ✗ Offline
Organization : AS55990 Huawei Cloud Service data center
Location : Beijing / CN
Region : Beijing
----------------------------------------------------------------------
I/O Speed(1st run) : 187 MB/s
I/O Speed(2nd run) : 156 MB/s
I/O Speed(3rd run) : 156 MB/s
I/O Speed(average) : 166.3 MB/s
----------------------------------------------------------------------
Node Name Upload Speed Download Speed Latency
Speedtest.net 47.75 Mbps 47.82 Mbps 4.68 ms
Los Angeles, US 47.77 Mbps 47.60 Mbps 186.09 ms
Dallas, US 47.79 Mbps 0.48 Mbps 208.01 ms
Montreal, CA 47.79 Mbps 0.98 Mbps 242.41 ms
Paris, FR 47.76 Mbps 46.06 Mbps 259.33 ms
Amsterdam, NL 47.80 Mbps 1.71 Mbps 288.57 ms
Suzhou, CN Test failed
Ningbo, CN Test failed
Hong Kong, CN 2.61 Mbps 9.74 Mbps 45.44 ms
Singapore, SG 15.29 Mbps 50.64 Mbps 180.75 ms
Taipei, CN 47.77 Mbps 14.63 Mbps 165.67 ms
Tokyo, JP 1.58 Mbps 49.88 Mbps 222.86 ms
----------------------------------------------------------------------
Finished in : 7 min 44 sec
Timestamp : 2026-06-25 22:43:07 CST
----------------------------------------------------------------------
1、首次打开 Shell
首次进入 AI Shell 时,默认会进入 AI Chat 模式。你可以直接通过自然语言与 AI 对话,让它在 Shell 中执行相应的命令,无需手动输入复杂的终端指令。
2、切换到普通 Shell
如果不想使用 AI Chat,只需连续按 两次 Ctrl + C 即可退出聊天模式,返回到普通的 Shell 界面。之后就可以像使用普通 Linux 终端一样,自由执行各种命令。
下面是一段可用于【篡改猴】的脚本,每2小时自动点击延期按钮。
// ==UserScript==
// @name Refresh Auto Click
// @namespace https://51.ruyo.net
// @version 1.0
// @description 每2小时自动执行一次点击
// @author malaohu
// @match https://devstation.connect.huaweicloud.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 执行点击
function autoClick() {
console.log("[AutoClick] " + new Date().toLocaleString() + " 开始执行...");
const el = document.getElementsByClassName("bottom-content")[0]?.childNodes[1];
if (el) {
el.click();
console.log("[AutoClick] 点击成功");
} else {
console.log("[AutoClick] 未找到目标元素");
}
}
// 页面加载完成后等待12秒执行第一次
window.addEventListener('load', () => {
setTimeout(() => {
autoClick();
// 之后每2小时执行一次
setInterval(autoClick, 2 * 60 * 60 * 1000);
}, 12000);
});
})();
应该有不少童鞋第一次用Tampermonkey(篡改猴),其实我就是第一次用。简单快速介绍步骤。
1,安装扩展程序,地址:https://u1.cm/ENWSY3
2,如果该扩展没被启动?访问 chrome://extensions/ 启用下
3,篡改猴扩展 - 右键 - 管理扩展程序 - 允许运行用户脚本 - 开启
4,篡改猴扩展 - 鼠标单击 - 添加新脚本
5,粘贴上面的脚本即可,记得启用该脚本
6,刷新一下AI Shell 的界面(必须是页面重新加载)即可触发自动脚本
如果你想体验 AI + Terminal,但又不想折腾本地环境,那么华为云 AI Shell 确实是一个不错的选择。
相比需要本地部署的方案,它真正做到了开箱即用:打开浏览器就是一台 Linux,AI Chat、Shell、Skills 都已经准备好了。对于临时开发、运维排障、脚本测试甚至学习 Linux,都非常方便。
另外,本文也分享了一个简单的 Tampermonkey 保活脚本,可以自动帮你点击延期按钮,避免频繁手动续期。
感兴趣的话,不妨亲自体验一下,也欢迎在评论区分享你的使用感受。
2026-06-25 08:40:03
Wasmer 是一个上手简单、部署便捷的云应用托管平台,支持 GitHub 一键部署、文件上传部署以及多种官方模板快速创建项目。
免费版提供 3 个应用、100GB+ 级别的月度资源额度以及自定义域名功能,对于个人开发者、学生和技术爱好者来说已经足够用于学习、测试和项目演示。
https://wasmer.io/signup
账号注册支持Google账号 和 Github直接授权登录!该平台可不登录直接部署,不登录的话部署的站点仅1小时有效。
免费版本:Hobby - free
| 项目 | 免费额度 |
|---|---|
| 月费 | 免费 |
| 成员数 | 1 人 |
| 应用数量 | 3 个 |
| 请求数(Requests) | 100,000 次/月 |
| 带宽流量 | 150 GB/月 |
| Compute Hours | 100 小时 |
| Active CPU Hours | 50 小时 |
| 存储空间 | 1 GB |
| 数据库 | 每个 App 1 个数据库,总计 100 MB |
| 自定义域名 | 50 个 |
| Build Minutes | 500 分钟 |
| CDN | 全球 Edge Network |
| SSL | 免费自动配置 |
| 日志保留 | 1 天 |
| 支持 | Community Support |
1,注册登录平台后,访问地址:https://wasmer.io/new
2,可以选择上传文件夹;也支持直接Github授权部署;也可以选择模板部署支持WP,Flask等等;
3,可设置打包编译方式等
4,部署成功了!
5,访问Domains,添加要绑定的域名。按要求添加解析即可!
ruyonet.wasmer.app
wordpress-7311c.wasmer.app
绑定域名:wasmer.ruyonet.kdns.fr
目前Wasmer 的运行时环境几乎支持所有其他编程语言
不过需要注意的是,免费套餐在计算资源、存储空间以及日志保留时间方面存在一定限制,更适合用于开发测试、个人展示和功能验证,不建议直接承载高并发或生产级业务。