跳到主要内容
    ↑↓ 选择↵ 打开esc 关闭
    中文English
    cravenceiling

    Etf

    v1.0.2其他
    @cravenceiling/opencode-etf

    Opencode exclude these files

    GitHub 星标

    1

    月装机量

    13

    近 7 天 4

    综合评分SCORE

    18.4

    生态多维模型

    最近提交

    6 个月前

    2026-01-26

    快速安装与配置

    opencode.json

    写入当前项目的 opencode.json,只对这个仓库生效。

    opencode.json

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["@cravenceiling/opencode-etf@1.0.2"]
    }

    opencode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。

    Exclude These Files - An OpenCode plugin that prevents the AI Agent from accessing ignored files.

    Overview

    opencode-etf acts as a guardrail for your OpenCode sessions. It automatically reads your .gitignore file (and defaults to blocking .env) to prevent the agent from accidentally reading or modifying sensitive or ignored files.

    It intercepts:

    • File system operations (read, write, edit)
    • Bash commands (cat, grep, cp, etc.)

    Installation

    Add the plugin to your opencode.json or opencode.jsonc config file:

    {
      "plugin": ["@cravenceiling/opencode-etf"]
    }
    

    For more details on managing plugins, see the OpenCode Plugin Documentation.

    How It Works

    1. Scans Configuration: On startup, it looks for .gitignore in your workspace root.
    2. Intercepts Tools: Before a tool executes, the plugin checks the target file paths.
    3. Blocks Access: If a path matches an ignored pattern (or is .env), the tool execution is blocked with an "Access denied" error.

    ⚠️ Limitations & Security Notice

    This plugin is a safety guardrail, NOT a security sandbox.

    It allows you to define "out of bounds" files to keep the context clean and prevent accidental edits to generated files or secrets. However, it relies on static string matching of arguments.

    Known Limitations:

    • Shell Expansion Bypass: The plugin parses command arguments as written. It does not simulate shell expansion.
      • cat .env -> Blocked (Explicit match)
      • ⚠️ cat .?nv -> Allowed (The plugin sees .?nv, which isn't ignored. Bash then expands this to .env and executes.)
    • Indirect Access: Scripts or binaries run by the agent that internally access files are not monitored.
    • Visibility: This plugin does not "hide" the existence of files (e.g., ls -la will still show them). It only blocks operations that attempt to read or modify them directly.

    Do not rely on this plugin to secure highly sensitive environments against malicious actors. It is designed to prevent accidental context pollution and mishandling of ignored files by the AI.

    License

    MIT