Whether JFROG_DEBUG_LOGS is enabled or not upon 1st run it creates empty .opencode directory from within path where opencode was run. Despite existence of ~/.config/opencode. On 2nd run opencode detects there is .opencode directory present and populates it with duplicate node_modules which results in slower startups, and higher disk usage.
If DEBUG_LOGS is enabled it at least has some meaning that it puts event-log.txt into it however that isn't necessary. You should respect xdg base dir spec and put logs according to variable to opencodes path (for example ~/.local/share/opencode/log/jfrog-event.log).
I append logs but it isn't certain from them (at least to me) why is .opencode being created when no LOGS=false
1st run
timestamp=2026-09-02T11:56:18.837Z level=INFO run=e19a753c message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:56:18.846Z level=INFO run=e19a753c message="applying tui config" path=/home/daru/.config/opencode/tui.json order=1
timestamp=2026-09-02T11:56:18.847Z level=INFO run=e19a753c message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:56:18.850Z level=INFO run=e19a753c message="applying tui config" path=/home/daru/.config/opencode/tui.json order=2
timestamp=2026-09-02T11:56:20.396Z level=INFO run=0bff64d9 message="creating instance" directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:56:20.398Z level=INFO run=0bff64d9 message=fromDirectory directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:56:20.576Z level=INFO run=0bff64d9 message=bootstrapping directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:56:20.587Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/config.json
timestamp=2026-09-02T11:56:20.588Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/opencode.json
timestamp=2026-09-02T11:56:20.588Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:56:20.618Z level=INFO run=0bff64d9 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:56:20.812Z level=INFO run=0bff64d9 message="Model discovery plugin initialized" category=plugin
timestamp=2026-09-02T11:56:20.823Z level=DEBUG run=0bff64d9 message="Using config hook timeout" category=config timeoutMs=5000
timestamp=2026-09-02T11:56:21.089Z level=DEBUG run=0bff64d9 message="Timed out loading resolved providers" category=discovery
timestamp=2026-09-02T11:56:21.237Z level=WARN run=0bff64d9 message="Provider model discovery failed" category=discovery provider=hento baseURL=https://ai.hento.org endpoint=/v1/models
timestamp=2026-09-02T11:56:21.237Z level=INFO run=0bff64d9 message="Provider model discovery completed" category=discovery providerCount=1 modelCount=25
timestamp=2026-09-02T11:56:21.240Z level=INFO run=0bff64d9 message="enabled LSP servers" serverIds="astro, bash, biome, csharp, clangd, clojure-lsp, dart, deno, dockerfile, eslint, elixir-ls, fsharp, gleam, gopls, haskell-language-server, jdtls, julials, kotlin-ls, lua-ls, nixd, ocaml-lsp, oxlint, php intelephense, prisma, pyright, razor, ruby-lsp, rust, sourcekit-lsp, svelte, terraform, texlab, tinymist, typescript, vue, yaml-ls, zls"
timestamp=2026-09-02T11:56:21.242Z level=INFO run=0bff64d9 message=init
timestamp=2026-09-02T11:56:21.941Z level=INFO run=0bff64d9 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:56:21.954Z level=INFO run=0bff64d9 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:56:22.455Z level=INFO run=0bff64d9 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:56:22.479Z level=INFO run=0bff64d9 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:56:23.876Z level=INFO run=0bff64d9 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:56:23.886Z level=INFO run=0bff64d9 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:56:24.735Z level=INFO run=0bff64d9 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:56:24.748Z level=INFO run=0bff64d9 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:56:26.815Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare-email-service existing=/home/daru/.claude/skills/cloudflare-email-service/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-email-service/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=agents-sdk existing=/home/daru/.claude/skills/agents-sdk/SKILL.md duplicate=/home/daru/.agents/skills/agents-sdk/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=web-perf existing=/home/daru/.claude/skills/web-perf/SKILL.md duplicate=/home/daru/.agents/skills/web-perf/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=turnstile-spin existing=/home/daru/.claude/skills/turnstile-spin/SKILL.md duplicate=/home/daru/.agents/skills/turnstile-spin/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=sandbox-next existing=/home/daru/.claude/skills/sandbox-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-next/SKILL.md
timestamp=2026-09-02T11:56:26.816Z level=WARN run=0bff64d9 message="duplicate skill name" name=wrangler existing=/home/daru/.claude/skills/wrangler/SKILL.md duplicate=/home/daru/.agents/skills/wrangler/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare-one-migrations existing=/home/daru/.claude/skills/cloudflare-one-migrations/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one-migrations/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=sandbox-migrate-to-next existing=/home/daru/.claude/skills/sandbox-migrate-to-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-migrate-to-next/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=sandbox-stable existing=/home/daru/.claude/skills/sandbox-stable/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-stable/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=durable-objects existing=/home/daru/.claude/skills/durable-objects/SKILL.md duplicate=/home/daru/.agents/skills/durable-objects/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare-one existing=/home/daru/.claude/skills/cloudflare-one/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=workers-best-practices existing=/home/daru/.claude/skills/workers-best-practices/SKILL.md duplicate=/home/daru/.agents/skills/workers-best-practices/SKILL.md
timestamp=2026-09-02T11:56:26.817Z level=WARN run=0bff64d9 message="duplicate skill name" name=cloudflare existing=/home/daru/.claude/skills/cloudflare/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare/SKILL.md
timestamp=2026-09-02T11:56:26.819Z level=INFO run=0bff64d9 message=init count=27
2nd run
timestamp=2026-09-02T11:57:47.868Z level=INFO run=b6840543 message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:57:47.874Z level=INFO run=b6840543 message="applying tui config" path=/home/daru/.config/opencode/tui.json order=1
timestamp=2026-09-02T11:57:47.875Z level=INFO run=b6840543 message="loading tui config" path=/home/daru/.config/opencode/tui.json
timestamp=2026-09-02T11:57:47.877Z level=INFO run=b6840543 message="applying tui config" path=/home/daru/.config/opencode/tui.json order=2
timestamp=2026-09-02T11:57:49.010Z level=INFO run=89886042 message="creating instance" directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:57:49.011Z level=INFO run=89886042 message=fromDirectory directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:57:49.123Z level=INFO run=89886042 message=bootstrapping directory=/home/daru/.config/opencode
timestamp=2026-09-02T11:57:49.131Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/config.json
timestamp=2026-09-02T11:57:49.131Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/opencode.json
timestamp=2026-09-02T11:57:49.132Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:57:49.148Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/opencode.jsonc
timestamp=2026-09-02T11:57:49.171Z level=DEBUG run=89886042 message="loading config from /home/daru/.config/opencode/.opencode/opencode.json"
timestamp=2026-09-02T11:57:49.172Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/.opencode/opencode.json
timestamp=2026-09-02T11:57:49.172Z level=DEBUG run=89886042 message="loading config from /home/daru/.config/opencode/.opencode/opencode.jsonc"
timestamp=2026-09-02T11:57:49.172Z level=INFO run=89886042 message=loading path=/home/daru/.config/opencode/.opencode/opencode.jsonc
timestamp=2026-09-02T11:57:56.124Z level=INFO run=89886042 message="Model discovery plugin initialized" category=plugin
timestamp=2026-09-02T11:57:56.131Z level=DEBUG run=89886042 message="Using config hook timeout" category=config timeoutMs=5000
timestamp=2026-09-02T11:57:56.421Z level=DEBUG run=89886042 message="Timed out loading resolved providers" category=discovery
timestamp=2026-09-02T11:57:56.566Z level=WARN run=89886042 message="Provider model discovery failed" category=discovery provider=hento baseURL=https://ai.hento.org endpoint=/v1/models
timestamp=2026-09-02T11:57:56.566Z level=INFO run=89886042 message="Provider model discovery completed" category=discovery providerCount=1 modelCount=25
timestamp=2026-09-02T11:57:56.569Z level=INFO run=89886042 message="enabled LSP servers" serverIds="astro, bash, biome, csharp, clangd, clojure-lsp, dart, deno, dockerfile, eslint, elixir-ls, fsharp, gleam, gopls, haskell-language-server, jdtls, julials, kotlin-ls, lua-ls, nixd, ocaml-lsp, oxlint, php intelephense, prisma, pyright, razor, ruby-lsp, rust, sourcekit-lsp, svelte, terraform, texlab, tinymist, typescript, vue, yaml-ls, zls"
timestamp=2026-09-02T11:57:56.571Z level=INFO run=89886042 message=init
timestamp=2026-09-02T11:57:57.195Z level=INFO run=89886042 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:57:57.204Z level=INFO run=89886042 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:57:57.656Z level=INFO run=89886042 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:57:57.667Z level=INFO run=89886042 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:57:58.680Z level=INFO run=89886042 message="watcher backend" directory=/home/daru/.config/opencode platform=linux backend=inotify
timestamp=2026-09-02T11:57:58.688Z level=INFO run=89886042 message="project copy refresh started" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f
timestamp=2026-09-02T11:57:59.317Z level=INFO run=89886042 message="project copy refresh done" projectID=f05bfbe824f971b17ef9a078fd746faec4ec945f updated=[] removed=[]
timestamp=2026-09-02T11:57:59.323Z level=INFO run=89886042 message="booting location services" directory=/home/daru/.config/opencode workspaceID=undefined
timestamp=2026-09-02T11:58:01.747Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare-email-service existing=/home/daru/.claude/skills/cloudflare-email-service/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-email-service/SKILL.md
timestamp=2026-09-02T11:58:01.748Z level=WARN run=89886042 message="duplicate skill name" name=web-perf existing=/home/daru/.claude/skills/web-perf/SKILL.md duplicate=/home/daru/.agents/skills/web-perf/SKILL.md
timestamp=2026-09-02T11:58:01.749Z level=WARN run=89886042 message="duplicate skill name" name=durable-objects existing=/home/daru/.claude/skills/durable-objects/SKILL.md duplicate=/home/daru/.agents/skills/durable-objects/SKILL.md
timestamp=2026-09-02T11:58:01.750Z level=WARN run=89886042 message="duplicate skill name" name=sandbox-next existing=/home/daru/.claude/skills/sandbox-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-next/SKILL.md
timestamp=2026-09-02T11:58:01.751Z level=WARN run=89886042 message="duplicate skill name" name=agents-sdk existing=/home/daru/.claude/skills/agents-sdk/SKILL.md duplicate=/home/daru/.agents/skills/agents-sdk/SKILL.md
timestamp=2026-09-02T11:58:01.752Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare-one existing=/home/daru/.claude/skills/cloudflare-one/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one/SKILL.md
timestamp=2026-09-02T11:58:01.752Z level=WARN run=89886042 message="duplicate skill name" name=sandbox-stable existing=/home/daru/.claude/skills/sandbox-stable/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-stable/SKILL.md
timestamp=2026-09-02T11:58:01.752Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare-one-migrations existing=/home/daru/.claude/skills/cloudflare-one-migrations/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare-one-migrations/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=turnstile-spin existing=/home/daru/.claude/skills/turnstile-spin/SKILL.md duplicate=/home/daru/.agents/skills/turnstile-spin/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=wrangler existing=/home/daru/.claude/skills/wrangler/SKILL.md duplicate=/home/daru/.agents/skills/wrangler/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=cloudflare existing=/home/daru/.claude/skills/cloudflare/SKILL.md duplicate=/home/daru/.agents/skills/cloudflare/SKILL.md
timestamp=2026-09-02T11:58:01.753Z level=WARN run=89886042 message="duplicate skill name" name=workers-best-practices existing=/home/daru/.claude/skills/workers-best-practices/SKILL.md duplicate=/home/daru/.agents/skills/workers-best-practices/SKILL.md
timestamp=2026-09-02T11:58:01.754Z level=WARN run=89886042 message="duplicate skill name" name=sandbox-migrate-to-next existing=/home/daru/.claude/skills/sandbox-migrate-to-next/SKILL.md duplicate=/home/daru/.agents/skills/sandbox-migrate-to-next/SKILL.md
timestamp=2026-09-02T11:58:01.757Z level=INFO run=89886042 message=init count=27
event-log when LOGS=true, there was no event-log when false
JfrogOpencodePlugin starting...
jf CLI on PATH: false
config.skills.paths=["/home/daru/.cache/opencode/packages/@jfrog/opencode-jfrog-plugin@0.3.0/node_modules/@jfrog/opencode-jfrog-plugin/skills"]
mcp: jfrog remote MCP not registered (need JFROG_PLATFORM_URL; or JFROG_MCP_DISABLE=true)
Whether
JFROG_DEBUG_LOGSis enabled or not upon 1st run it creates empty.opencodedirectory from within path where opencode was run. Despite existence of~/.config/opencode. On 2nd run opencode detects there is.opencodedirectory present and populates it with duplicate node_modules which results in slower startups, and higher disk usage.If DEBUG_LOGS is enabled it at least has some meaning that it puts
event-log.txtinto it however that isn't necessary. You should respect xdg base dir spec and put logs according to variable to opencodes path (for example~/.local/share/opencode/log/jfrog-event.log).I append logs but it isn't certain from them (at least to me) why is .opencode being created when no LOGS=false
1st run
2nd run
event-log when LOGS=true, there was no event-log when false