分享一个 macOS 风格的 Web 桌面文件管理系统,包含 Go 后端和 React 前端。支持窗口管理、代码编辑、终端模拟、Docker 管理、视频/音乐播放、AI 对话与 Skills 扩展等功能。

16 小时 19 分钟前
 wuhen8

全 AI 编写,没写一行代码,go 后端,React 前端,ai 还是比较适合写 React

功能特性

后端

前端

Skills 系统

Skills 是 AI 对话功能的扩展机制,允许你为 AI 添加自定义知识(提示词)或可执行工具(脚本)。

Skills 目录位于 {FM_DATA_DIR}/skills/(默认 /opt/file-manager/skills/),启动时自动创建。

Skill 类型

1. 提示词 Skill ( Prompt Skill )

为 AI 注入额外的上下文知识,支持两种格式:

社区格式(推荐) — 子目录 + SKILL.md

skills/
└── my-knowledge/
    └── SKILL.md

SKILL.md 支持 YAML frontmatter:

---
name: my-knowledge
description: 自定义知识描述
---

这里是提示词内容,AI 对话时会自动加载。

根级文件(旧格式) — 直接放置 .md.txt 文件:

skills/
└── my-prompt.md

单个提示词文件最大 20KB ,所有提示词总计最大 200KB 。

2. 脚本工具 Skill ( Script Tool Skill )

让 AI 能够调用自定义脚本执行操作(如读取 Excel 、调用外部 API 等)。脚本在 Docker 沙箱容器中隔离执行。

子目录格式(推荐)meta.json + main.py / main.sh

skills/
└── read_excel/
    ├── meta.json
    └── main.py

meta.json 定义工具的名称、描述和参数:

{
  "name": "read_excel",
  "description": "读取 Excel 文件内容",
  "parameters": {
    "type": "object",
    "properties": {
      "file_path": {
        "type": "string",
        "description": "文件路径"
      }
    },
    "required": ["file_path"]
  }
}

main.py 中通过 ARGS 获取参数:

# ARGS 是一个 dict ,包含 AI 传入的参数
file_path = ARGS["file_path"]
# 你的处理逻辑...
print(result)

main.sh 中通过 $ARGS 环境变量获取 JSON 参数:

echo "$ARGS" | jq -r '.file_path'
# 你的处理逻辑...

根级文件(旧格式).py/.sh + 同名 .json

skills/
├── read_excel.py
└── read_excel.json

沙箱配置

脚本工具 Skill 在 Docker 沙箱容器中执行,需要:

  1. 预先创建并启动一个 Docker 容器(默认名称 fm-sandbox,可通过 FM_SANDBOX_CONTAINER 环境变量修改)
  2. 将 Skills 目录挂载到容器的 /skills/ 路径

示例:

docker run -d --name fm-sandbox \
  -v /opt/file-manager/skills:/skills:ro \
  python:3.11-slim \
  sleep infinity

技术栈

后端

前端

环境变量

变量名 说明 默认值
FM_DATA_DIR 应用数据目录,存放数据库、Skills 、配置等 /opt/file-manager
FM_PORT 服务监听端口 8080
FM_JWT_SECRET JWT 签名密钥。未设置时每次启动随机生成,重启后所有已签发的 Token 失效 随机 32 字节
FM_SANDBOX_CONTAINER AI Skills 脚本执行所用的 Docker 沙箱容器名称 fm-sandbox

示例:

export FM_DATA_DIR=/data/file-manager
export FM_PORT=9090
export FM_JWT_SECRET=your-secret-key
export FM_SANDBOX_CONTAINER=my-sandbox

大家可以在这里体验一下 https://huggingface.co/spaces/wuhenba/webos https://wuhenba-webos.hf.space/ 密码: Admin@123

二进制包也在这里可以下载

403 次点击
所在节点    分享创造
2 条回复
Moyyyyyyyyyyye
15 小时 48 分钟前
我更希望自己的产品介绍自己写,ai 写的看的有用的信息密度太低了,个人见解
GPLer
7 小时 50 分钟前
虽然是虚拟环境,但还是提醒楼主注意下安全问题,试了下有完整权限。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1192857

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX