Skip to content

Config autoupdate only respected at global path #6984

Closed as not planned
Closed as not planned

Description

@scottrbaxter

Description

Config file includes "autoupdate": false,, but v1.1.1 ignores this and updates to v1.1.2 on startup.

This occurs whether using ~/.config/opencode/opencode.json, a local path ./opencode.json and referencing the env var
OPENCODE_CONFIG to declare a specific config.

This did not occur on v1.0.223 or earlier.

Autoupdate also occurs automatically if "autoupdate": "notify" is specified.

Plugins

N/A

OpenCode version

v1.1.1

Steps to reproduce

  1. echo '{"$schema": "https://opencode.ai/config.json","autoupdate": false,}' > opencode-autodate.json
  2. npm -g i opencode-ai@1.1.1
  3. OPENCODE_CONFIG=opencode-autodate.json opencode --version # confirms 1.1.1
  4. OPENCODE_CONFIG=opencode-autodate.json opencode # notification states autodate to 1.1.2
  5. <ctrl-c> quit
  6. OPENCODE_CONFIG=opencode-autodate.json opencode --version # confirms 1.1.2

Screenshot and/or share link

Image

Operating System

macOS Sequoia

Terminal

iTerm2

Activity

  1. github-actions commented on Jan 5, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    It appears there may be a broader regression in v1.1.1 where configuration settings from opencode.json are not being properly respected on startup. Feel free to ignore if your specific case differs from these issues.

  2. rekram1-node commented on Jan 5, 2026

    @rekram1-node
    Contributor

    Can u share full config? None of that code changed between versions as far as I can tell

    You can also try:
    OPENCODE_DISABLE_AUTOUPDATE=true

  3. scottrbaxter commented on Jan 5, 2026

    @scottrbaxter
    Author
    OPENCODE_CONFIG=opencode-autodate.json opencode --version
    1.1.1
    
    OPENCODE_CONFIG=opencode-autodate.json opencode debug config
    {
      "agent": {},
      "mode": {},
      "plugin": [],
      "command": {},
      "username": "scott",
      "keybinds": {
        "leader": "ctrl+x",
        "app_exit": "ctrl+c,ctrl+d,<leader>q",
        "editor_open": "<leader>e",
        "theme_list": "<leader>t",
        "sidebar_toggle": "<leader>b",
        "scrollbar_toggle": "none",
        "username_toggle": "none",
        "status_view": "<leader>s",
        "session_export": "<leader>x",
        "session_new": "<leader>n",
        "session_list": "<leader>l",
        "session_timeline": "<leader>g",
        "session_fork": "none",
        "session_rename": "none",
        "session_share": "none",
        "session_unshare": "none",
        "session_interrupt": "escape",
        "session_compact": "<leader>c",
        "messages_page_up": "pageup",
        "messages_page_down": "pagedown",
        "messages_half_page_up": "ctrl+alt+u",
        "messages_half_page_down": "ctrl+alt+d",
        "messages_first": "ctrl+g,home",
        "messages_last": "ctrl+alt+g,end",
        "messages_next": "none",
        "messages_previous": "none",
        "messages_last_user": "none",
        "messages_copy": "<leader>y",
        "messages_undo": "<leader>u",
        "messages_redo": "<leader>r",
        "messages_toggle_conceal": "<leader>h",
        "tool_details": "none",
        "model_list": "<leader>m",
        "model_cycle_recent": "f2",
        "model_cycle_recent_reverse": "shift+f2",
        "model_cycle_favorite": "none",
        "model_cycle_favorite_reverse": "none",
        "command_list": "ctrl+p",
        "agent_list": "<leader>a",
        "agent_cycle": "tab",
        "agent_cycle_reverse": "shift+tab",
        "variant_cycle": "ctrl+t",
        "input_clear": "ctrl+c",
        "input_paste": "ctrl+v",
        "input_submit": "return",
        "input_newline": "shift+return,ctrl+return,alt+return,ctrl+j",
        "input_move_left": "left,ctrl+b",
        "input_move_right": "right,ctrl+f",
        "input_move_up": "up",
        "input_move_down": "down",
        "input_select_left": "shift+left",
        "input_select_right": "shift+right",
        "input_select_up": "shift+up",
        "input_select_down": "shift+down",
        "input_line_home": "ctrl+a",
        "input_line_end": "ctrl+e",
        "input_select_line_home": "ctrl+shift+a",
        "input_select_line_end": "ctrl+shift+e",
        "input_visual_line_home": "alt+a",
        "input_visual_line_end": "alt+e",
        "input_select_visual_line_home": "alt+shift+a",
        "input_select_visual_line_end": "alt+shift+e",
        "input_buffer_home": "home",
        "input_buffer_end": "end",
        "input_select_buffer_home": "shift+home",
        "input_select_buffer_end": "shift+end",
        "input_delete_line": "ctrl+shift+d",
        "input_delete_to_line_end": "ctrl+k",
        "input_delete_to_line_start": "ctrl+u",
        "input_backspace": "backspace,shift+backspace",
        "input_delete": "ctrl+d,delete,shift+delete",
        "input_undo": "ctrl+-,super+z",
        "input_redo": "ctrl+.,super+shift+z",
        "input_word_forward": "alt+f,alt+right,ctrl+right",
        "input_word_backward": "alt+b,alt+left,ctrl+left",
        "input_select_word_forward": "alt+shift+f,alt+shift+right",
        "input_select_word_backward": "alt+shift+b,alt+shift+left",
        "input_delete_word_forward": "alt+d,alt+delete,ctrl+delete",
        "input_delete_word_backward": "ctrl+w,ctrl+backspace,alt+backspace",
        "history_previous": "up",
        "history_next": "down",
        "session_child_cycle": "<leader>right",
        "session_child_cycle_reverse": "<leader>left",
        "session_parent": "<leader>up",
        "terminal_suspend": "ctrl+z",
        "terminal_title_toggle": "none",
        "tips_toggle": "<leader>h"
      }
    }
    

    this seems to stop the autoupdate from occurring. it's a band-aid fix, but nice to know this works. definitely preferred to have this in a config file, though.

    OPENCODE_CONFIG=opencode-autodate.json OPENCODE_DISABLE_AUTOUPDATE=true opencode # no auto update

    NOTE: autoupdate still occurs automatically with notify, quoted or otherwise. i'd still rather just have this disabled and manually update when i'm ready (because you're so quick to churn out updates!), but i've yet to actually see the notification that the doc mentions.

    OPENCODE_CONFIG=opencode-autodate.json OPENCODE_DISABLE_AUTOUPDATE="notify" opencode # auto updates
    OPENCODE_CONFIG=opencode-autodate.json OPENCODE_DISABLE_AUTOUPDATE=notify opencode # auto updates

  4. rekram1-node commented on Jan 5, 2026

    @rekram1-node
    Contributor

    okay but in ur config I dont see autoupdate set to false anywhere

  5. scottrbaxter commented on Jan 5, 2026

    @scottrbaxter
    Author

    hmm... the config is the first step i shared in in steps to reproduce... is the config not picking this up for some reason. i didn't run into this issue prior to version 1.1.1

    cat opencode-autodate.json
    {"$schema": "https://opencode.ai/config.json","autoupdate": false,}
    OPENCODE_CONFIG=opencode-autodate.json opencode
    

    Edit: oh, interesting... i've been pretty diligent with manually updating to the latest when i fire up new sessions.. and didn't realize that this actually had been occurring for a while. the difference was that back when i was on e.g. 1.0.80, autoupdate would occur, but there was no user notification. i've updated a few times since, but that would have been manually, so i wouldn't have seen a new release.

    What this tells me is that the autoupdate boolean (or sometimes a string for notify, which is an interesting choice) doesn't care about the config value that's being set. the shell env var OPENCODE_DISABLE_AUTOUPDATE is a band-aid for the time being, but would prefer to not rely on that long-term. also with so much rapid release going on in this project, i really don't want to be caught off guard with an unintended version update.

  6. scottrbaxter commented on Jan 7, 2026

    @scottrbaxter
    Author

    It seems this is directly related to where the config file exists. The only way "autoupdate": false seems to be respected, is if it's in the default ~/.config/opencode/opencode.json location. I've now confirmed this up to v1.1.5.

    e.g.

    local path

    rm ~/.config/opencode/opencode.json
    cd /tmp
    echo '{"$schema": "https://opencode.ai/config.json","autoupdate": false,}' > opencode.json
    npm -g i opencode-ai@1.1.5
    opencode --version # returns 1.1.5
    opencode debug config | jq '.autoupdate' # returns false
    opencode
    opencode --version
    

    Auto update occurs

    Image
    opencode --version
    1.1.6
    

    default path

    unset OPENCODE_CONFIG
    cd /tmp
    rm ./opencode.json
    echo '{"$schema": "https://opencode.ai/config.json","autoupdate": false,}' > ~/.config/opencode/opencode.json
    npm -g i opencode-ai@1.1.5
    opencode --version # returns 1.1.5
    opencode debug config | jq '.autoupdate' # returns false
    opencode
    opencode --version
    

    no autoupdate

    Image

    confirmed: only if config file is at the default path, opencode does not autoupdate

    opencode --version
    1.1.5
    

    To test, you should be able to simply copy/paste either code block with the same results. I've been able to successfully confirm this on macOS Sequoia and Ubuntu 22.04 LTS.

  7. rekram1-node commented on Jan 7, 2026

    @rekram1-node
    Contributor

    ill check it, hmmm

  8. changed the title [-]Config autoupdate not respected on v1.1.1[/-] [+]Config autoupdate only respected at global path[/+] on Jan 7, 2026
  9. added a commit that references this issue on Feb 5, 2026
    8c53e42
  10. thdxr commented on Mar 25, 2026

    @thdxr
    Member

    To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.

  11. epark001 commented on Apr 21, 2026

    @epark001

    this issue is still occurring for me as well

  12. removed
    bugSomething isn't working
    on May 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions