Skip to content

codemeld v0.4.5 (Alpha)

Pre-release
Pre-release

Choose a tag to compare

@francisco1844 francisco1844 released this 17 Oct 12:28
· 8 commits to main since this release

First public release.

Install

With Go 1.26.9 or newer:

go install codemeld.dev/codemeld/cmd/codemeld@v0.4.5

Or download a Linux binary (amd64 or arm64) from the files below. To check the download, put it
next to SHA256SUMS and run sha256sum -c SHA256SUMS.

Only Linux is tested. codemeld also builds on macOS and FreeBSD, but it has not been tested there.
Windows is not supported.

What's new

  • Sandbox on Linux. On Linux (amd64 or arm64, kernel 6.2 or newer), codemeld checks at startup
    that it can sandbox shell commands. In Plan mode, commands can only read. In Auto mode, project
    commands run without asking, but commands that use the network, delete files, or rewrite
    history still ask first. Build mode has no sandbox. The status line shows whether the sandbox
    is on.
  • Blocked folders. Add folders such as ~/.ssh to blocked_paths, and no tool or shell
    command can read them. ~/.codemeld is always blocked. Use /blocked to manage the list.
  • Personal and shared project settings. Your own permissions and chosen model are saved in
    .codemeld/settings.local.yaml. Settings you share with your team go in
    .codemeld/settings.yaml. /settings shows which file each permission is in, and can share or
    remove it.
  • Approve a project once. codemeld ignores a project's own settings files until you approve
    that project folder. It asks once and remembers your answer.
  • Fewer permission prompts. Common commands that only read run without asking.
  • Stops runaway turns. A turn stops after 200 model calls, or when the model repeats the same
    tool calls three times in a row.
  • OpenRouter routing. Choose how OpenRouter picks a provider: fastest or best value, whether
    providers may keep your data, which features they must support, and a top price per model. Set
    it in the settings file or with /settings. Each answer records which provider served it.
  • Sessions. Sessions get titles automatically. codemeld sessions list lists them (--all
    for every folder, --json for scripts).
  • Scripted runs. codemeld run prints the answer on stdout and progress messages on stderr.
  • Safer connections. Connections to model providers and the ChatGPT login never follow
    redirects.
  • Provider prompt caching, and many fixes to the interface.

Known issues

We plan to fix all four in the next release.

  • codemeld can freeze while it re-reads project settings if someone has replaced a project's
    settings lock file with a special file (a named pipe). This only happens in a repository set up
    to do it on purpose. No settings are changed, and quitting codemeld ends it.
  • If a project's .codemeld folder is a symlink, codemeld may create empty .lock files in the
    folder the link points to.
  • Inside the sandbox, tools built on the tokio library, such as mise, fail with
    failed to create UnixStream: PermissionDenied.
  • In Auto mode, a few less common ways of writing delete and history-rewrite commands skip the
    extra confirmation, for example hg ci --amend or sh -c 'exec rm file'. These commands still
    run in the sandbox, so they can only change folders Auto is allowed to write to.