mcpField
G
gdcli

gdcli

github.com/badlogic生产力2.6k166 次安装21 周前更新
代码仓库

关于 gdcli

gdcli 是用于管理 Google Drive 文件和文件夹的命令行工具,支持按内容或元数据搜索,以及上传、下载、创建文件夹和共享文件。

主要功能

  1. 01列出并筛选文件和文件夹
  2. 02搜索文件内容
  3. 03上传和下载文件
  4. 04创建文件夹并共享文件
  5. 05配置 OAuth 账户

适用场景

  1. 01按内容或元数据查找文件
  2. 02与 Drive 传输文件
  3. 03创建文件夹或共享文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/badlogic/pi-skills --skill gdcli

安装后在 Claude Code 中输入/gdcli确认已加载。

详细介绍

Google Drive 命令行工具

用于执行 Google Drive 操作的命令行界面。

安装

npm install -g @mariozechner/gdcli

设置

Google Cloud Console(一次性设置)
  1. 创建新项目(或选择现有项目)
  2. 启用 Google Drive API
  3. 在 OAuth 品牌设置中设置应用名称
  4. 添加测试用户(添加所有想要使用的 Gmail 地址)
  5. 创建 OAuth 客户端:
    • 点击“Create Client”
    • 应用类型:“Desktop app”
    • 下载 JSON 文件
配置 gdcli

先检查是否已完成配置:

gdcli accounts list

如果没有账号,请引导用户完成设置:

  1. 询问他们是否已创建启用 Drive API 的 Google Cloud 项目
  2. 如果没有,请引导他们完成上述 Google Cloud Console 步骤
  3. 让他们下载 OAuth 凭据 JSON 文件
  4. 运行:gdcli accounts credentials ~/path/to/credentials.json
  5. 运行:gdcli accounts add <email>(若不使用浏览器进行 OAuth,请使用 --manual)

使用方法

运行 gdcli --help 查看完整命令参考。

常见操作:

  • gdcli <email> ls [folderId] - 列出文件/文件夹
  • gdcli <email> ls --query "<query>" - 使用 Drive 查询筛选条件列出文件
  • gdcli <email> search "<text>" - 搜索文件内容全文
  • gdcli <email> download <fileId> [destPath] - 下载文件
  • gdcli <email> upload <localPath> [--folder <folderId>] - 上传文件
  • gdcli <email> mkdir <name> - 创建文件夹
  • gdcli <email> share <fileId> --anyone - 公开分享

搜索

有两种不同的命令:

  • search "<text>" - 搜索文件内容(fullText)
  • ls --query "<query>" - 按元数据筛选(名称、类型、日期等)

按文件名搜索时,请使用 ls --query!

查询语法(用于 ls --query)

格式:field operator value。使用 and/or 组合条件,使用 () 分组。

运算符: =、!=、contains、<、>、<=、>=

示例:

# By filename
ls --query "name = 'report.pdf'"           # exact match
ls --query "name contains 'IMG'"           # prefix match

# By type
ls --query "mimeType = 'application/pdf'"
ls --query "mimeType contains 'image/'"
ls --query "mimeType = 'application/vnd.google-apps.folder'"  # folders

# By date
ls --query "modifiedTime > '2024-01-01'"

# By owner/sharing
ls --query "'me' in owners"
ls --query "sharedWithMe"

# Exclude trash
ls --query "trashed = false"

# Combined
ls --query "name contains 'report' and mimeType = 'application/pdf'"

参考:https://developers.google.com/drive/api/guides/ref-search-terms

数据存储

  • ~/.gdcli/credentials.json - OAuth 客户端凭据
  • ~/.gdcli/accounts.json - 账号令牌
  • ~/.gdcli/downloads/ - 默认下载位置

评论

支持 Markdown