Repository navigation
Releases: dennis2lee/localcode
Release list
v0.161.0
Skills and commands in opencode's own global directory, ~/.config/opencode, are read.
Added
~/.config/opencode/skillsand~/.config/opencode/commands(orcommand/) as the seventh and lowest skills and commands directories, after~/.opencode;$XDG_CONFIG_HOME/opencodewhen that variable is an absolute path, as opencode resolves it- Global rules still come from the first of
~/.claude,~/.opencode,~/.localcode;~/.config/opencode/AGENTS.mdis not read
v0.160.0
Custom commands are read from every root, in the order skills are, rather than from the first root that exists.
Changed
- Commands read from six directories, highest first: the project's
.localcode,.claudeand.opencode, then the home's; a name in a higher one wins. They used to come from the first of.claude,.opencode,.localcodethat existed, so an empty.claudehid every other root's commands, and a.localcodecommand lost to a.claudeone of the same name - A commands directory that cannot be read skipped with a log line rather than stopping startup, and a command file that does not parse named in the log rather than skipped silently
- Startup logs the commands directories it reads whenever one is outside
.localcode, as it does skills;/reset-skillsnames all six - On Windows, a file where a skills or commands directory should be is named in the log, as elsewhere, rather than skipped without a word
- Global rules (
AGENTS.md,CLAUDE.mdin the home roots) still come from the first root that exists
v0.159.0
A tool call whose arguments are not valid JSON no longer stops the conversation.
Fixed
- A tool call with arguments that are not a JSON object refused by the endpoint on every later request (LiteLLM's "Failed to parse tool call arguments"); it now goes back as
{}, through the Anthropic API, Bedrock and OpenAI-compatible endpoints alike, and conversations already stuck this way continue - Such a call answered without calling the tool, with a result that tells the model what was wrong and how the arguments ended
- An endpoint's error reply printed whole into the transcript, including the conversation LiteLLM echoes back after the cause; the echo is now left out and a reply is kept to 16 KB
v0.158.0
A skill in .localcode now wins over a same-named one in .claude or .opencode.
Changed
- Skill priority inside the project and inside the home directory:
.localcode, then.claude, then.opencode(was.claude,.opencode,.localcode). The project still comes before the home directory, and commands and global rules keep their order - Skill names that differ only in case treated as one name, so
/nameand the model'sSkilltool reach the same skill - USAGE.md lists the six skills directories in priority order
v0.157.0
A first install reaches a first answer, the documentation matches the code again, and the bugs the audit found are fixed.
Fixed
- A config naming an anthropic provider with no key no longer stops startup; the first request through it says how to add one, and a key saved or changed later is used without a restart
localcode login anthropicprints a whole starter config, and saves the key atomically; the no-config error names the next steplocalcode runon a config with noagentsanswers as the default agent- Pasted images over about 768 KB refused as "request body too large"; the 10 MB limit is reachable
- An upload over 32 MB truncated and accepted; now refused with
413, and an earlier file of the same name kept - Built-in specialists marked as able to view images
- The Orchestrate tool description claiming every ceiling is checked before the run
settings.changedmissingmodel_invocable- The auto-delegate panel offering built-in specialists the daemon refuses
- The TUI's
/model defaultsent as a profile name
Changed
- README First run section with a minimal config for the Anthropic API, Bedrock and a local server
- INSTALL.md reordered for a first install: release first, each platform's first run, credentials, updating and uninstalling
- Every live Markdown document checked against the code and corrected; MODELS.md gains an Ollama section
install.shnames~/.zshrcfor zsh- Tests for the lines changed since v0.153.0 that no test reached, each shown to fail when its line's comparison or condition is flipped
v0.156.0
Background tasks can be deleted from the Web UI's task panel, one row at a time or all at once.
Added
- A delete button on each background task row; a running task asks first and is stopped
- "delete all tasks" under the rows, which asks and says how many are still running
DELETE /api/sessions/{id}/tasks/{taskId}andDELETE /api/sessions/{id}/tasks
Fixed
- A row whose task session was already gone could not be removed
- A deleted task listed in the TUI's
/taskswith status "deleted" - A detached sub-agent not counted as running in either client
- A turn collecting a deleted task told that its own conversation was deleted
- A write to a path with a
..segment redirected to the route above it (DELETE /api/sessions/{id}/tasks/..deleted the conversation); now400 - Web UI requests whose path a browser would rewrite before sending, now refused
v0.155.1
A conversation moved to a model that cannot see goes on.
Fixed
- Every request refused after a conversation with images moved to a model that cannot see, by
/modelor by fallback
Changed
- Images sent only to a model with
visionon (the default for Claude); any other model gets a note in place of each image, and the transcript a notice- For a non-Claude model that can see, set
"vision": trueon its profile.
- For a non-Claude model that can see, set
v0.155.0
Delegation belongs to orchestration, a model that can see opens image files, and a sub-agent no longer hands its task back to itself.
Changed
- Delegation is orchestration's: the six specialists,
Task,TaskBackground,TaskCollectand the delegation prompt come withorchestrate, notsmart_agent- To keep delegating, set
"orchestrate": true. With it off the model delegates to no agent, including agents declared in config.json.
- To keep delegating, set
- Smart Agent gives the model an order of work and delegates nothing
Added
view_imagetool, offered to models that can see, and thevisionprofile key (on by default for Claude models)
Fixed
- A sub-agent handing its task to itself or back up the chain
- Task dialog showing "cancelling" after the task had ended
v0.154.1
Fixes for a conversation moved to an OpenAI-compatible endpoint, and for a reply cut off in the middle of a tool call.
Fixed
- LiteLLM proxy no longer refuses a conversation that called tools (
AnthropicException - 'content') - A reply cut off in the middle of a tool call no longer breaks the session
v0.154.0
localcode reads only its own config files unless a config lists others, and skills are read from every root.
Changed
- Config files written for opencode or Claude Code read only when listed under the new
includekey- To keep the old behaviour, add
"include": ["~/.config/opencode/opencode.jsonc"]to~/.localcode/config.json.
- To keep the old behaviour, add
- Claude Code's
mcpServersspelling accepted, so.mcp.jsonand~/.claude.jsoncan be listed - Skills from
.claude,.opencodeand.localcodemerged; commands and global rules still come from the first root - An unreadable skills directory skipped with a warning instead of stopping startup
Fixed
- An empty
model_commandslist now overrides one from a lower config localcode mcp addandmcp removesee servers written undermcp