Skip to main content

Metals v1.6.7 - Osmium

· 7 min read

We're happy to announce the release of Metals v1.6.7, which mostly focuses on bugfixes and improvements. It also brings long-requested features: automatic decompilation and stdio transport support for the Metals MCP server.

Commits since last release37
Merged PRs37
Contributors9
Closed issues5
New features2

For full details: https://github.com/scalameta/metals/milestone/86?closed=1

Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed, Helix and Sublime Text. Metals is developed at the Scala Center and VirtusLab with help from contributors in the community.

TL;DR

Check out https://scalameta.org/metals/, and give Metals a try!

Stdio transport support for the Metals MCP server

Thanks to majk-p it's now possible to use the Metals MCP server over stdio transport in addition to HTTP transport. This is particularly useful when running agentic tools that do not support per-workspace configuration.

Automatic decoding of .class, .semanticdb, and .tasty files

When using Visual Studio Code or its forks, Metals can now automatically decode .class, .semanticdb, and .tasty files. Metals registers itself as a separate editor type for these formats, so you can choose Metals when opening a binary file and optionally set it as the default editor for that file type.

This is also controlled by the settings:

"workbench.editorAssociations": {
"*.class": "metals.classDecoder",
"*.tasty": "metals.classDecoder",
"*.semanticdb": "metals.classDecoder"
},

or can be used on a case-by-case basis when opening any of the three supported binary files.

In VS Code, Metals will not be used by default for binary files; you still need to go through "Open anyway" in the dialog, so this change should not affect users who are not interested in decoding these files.

For .class files, you can set the decoder to CFR or javap; CFR is the default.

"metals.classDecoder": "cfr", // also "javap", "javap-verbose", "none"

Miscellaneous

  • fix(tests): support method call syntax for behavior.of in AnyFlatSpec. nanjo712
  • improvement: Return only last version in find-dep tool instead of all versions. tgodzik
  • Support generating opencode config in metals-mcp. majk-p
  • Add --list-settings flag to print all user configuration options in metals CLI. matejcerny
  • bugfix: Fix potential Metals classpath issue with duplicated AutoImports class tgodzik
  • bugfix: Detect Bazel rules name instead of assuming a name for a specific Bazel version. tgodzik
  • bugfix: Fix an issue with running tests with an empty scalatest prefix tgodzik
  • Better heuristic for guessing the name of the Scala rule set odisseus

Contributors

Big thanks to everybody who contributed to this release or reported an issue!

$ git shortlog -sn --no-merges v1.6.6..v1.6.7
18 Tomasz Godzik
8 dependabot[bot]
4 scalameta-bot
2 Michał Pawlik
1 BrianHotopp
1 Jiacong Ye
1 Krzysztof Maliszewski
1 Matej Cerny
1 Myroslav

v1.6.7 (2026-04-07)

Full Changelog

Merged pull requests:

  • improvement: Also add metals v2 methods to RawPresentationCompiler #8289 (tgodzik)
  • build(deps): bump lodash from 4.17.23 to 4.18.1 in /website #8287 (dependabot[bot])
  • build(deps): bump coursier/setup-action from 2 to 3 in the github-actions group #8284 (dependabot[bot])
  • build(deps-dev): bump @types/node from 25.3.3 to 25.5.0 in /website in the npm-dependencies group #8285 (dependabot[bot])
  • chore: Suggest changing metals.macos-max-watch-roots #8283 (tgodzik)
  • chore: Test Metals with Scala 3.8.3 #8211 (tgodzik)
  • build(deps): bump brace-expansion from 1.1.12 to 1.1.13 in /website #8281 (dependabot[bot])
  • build(deps): bump node-forge from 1.3.2 to 1.4.0 in /website #8282 (dependabot[bot])
  • Better heuristic for guessing the name of the Scala rule set #8270 (odisseus)
  • bugfix: Fix constructing invalid symbol #8277 (tgodzik)
  • docs: add jarchive to Emacs setup for dependency source navigation #8280 (BrianHotopp)
  • build(deps): bump picomatch from 2.3.1 to 2.3.2 in /website #8278 (dependabot[bot])
  • feature: Add a tool to return contents of a specific class #8250 (tgodzik)
  • feat: Add stdio transport support for Metals MCP server #8266 (majk-p)
  • bugfix: Fix an issue with an empty scalatest prefix #8274 (tgodzik)
  • docs: Add AGENTS.md file #8275 (tgodzik)
  • bugfix: Detect rules name instead of assuming a specific version #8265 (tgodzik)
  • bugfix: Fix potential issue with duplicated AutoImports class #8264 (tgodzik)
  • Add --list-settings flag to print all user configuration options #8260 (matejcerny)
  • build(deps): bump undici from 6.23.0 to 6.24.1 in /website #8262 (dependabot[bot])
  • chore: Add new config options to presentation compiler conf #8258 (tgodzik)
  • Support generating opencode config in metals-mcp #8247 (majk-p)
  • improvement: Return only last version in find-dep tool #8249 (tgodzik)
  • fix(tests): support method call syntax for behavior.of in AnyFlatSpec #8248 (nanjo712)
  • build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.17.0 to 3.18.0 #8244 (scalameta-bot)
  • build(deps): Update mill-contrib-testng from 1.1.2 to 1.1.3 #8243 (scalameta-bot)
  • build(deps): Update munit from 1.2.3 to 1.2.4 #8245 (scalameta-bot)
  • build(deps): Update cli_3, scala-cli-bsp from 1.12.3 to 1.12.4 #8246 (scalameta-bot)
  • docs: simplify install instructions #8240 (kmaliszewski9)
  • bugfix: Default to 0 if minor or patch are missing, log warning #8232 (tgodzik)
  • improvement: Add relevant methods from Metals v2 #8238 (tgodzik)
  • improvement: Log which symbols we wanted to insert #8234 (tgodzik)
  • improvement: Fix flakiness with the fatal warnings tests #8233 (tgodzik)
  • build(deps): bump svgo from 3.3.2 to 3.3.3 in /website #8230 (dependabot[bot])
  • docs: Simplify install instructions #8227 (tgodzik)
  • docs: Update docs #8226 (tgodzik)
  • docs: Add release notes for Metals 1.6.6 #8218 (tgodzik)