Skip to content

Release Note 2.0

Soutaro Matsumoto edited this page Apr 14, 2026 · 4 revisions

The latest version of Steep 2.0 is 2.0.0.

Some of the highlights in Steep 2.0 are:

  • Inline RBS Declaration
  • steep server command
  • steep query command
  • steep check -e command

You can install it with $ gem install steep or using Bundler.

gem 'steep', require: false

See the CHANGELOG for the details.

Inline RBS Declaration

Note

Inline RBS declaration support is an experimental feature. Not all of the rbs-inline gem syntaxes are supported.

Steep 2.0 ships with experimental inline RBS declaration.

You can enable the feature by declaring that a set of source code to type check uses inline RBS declarations.

check "lib", inline: true

Then you can write the inline RBS declaration comments for type checking your source code.

See inline.md in RBS repo for the details of supported syntaxes.

steep server

Steep 2.0 introduces a daemon server that keeps the RBS environment loaded in memory for faster type checking.

$ steep server start      # Starts the daemon
$ steep check             # Type checks with the pre-loaded RBS environment using the daemon

We also provide steep server stop, steep server reload, and steep server status for daemon management operations.

steep query

Note

steep query is an experimental feature. We know it has rough edges and will be working to make it more useful.

On top of the steep server command, steep query provides features to navigate through your codebase.

# Pre-flight commands to update the index in the daemon
$ steep server start && steep check

# `query hover` command with source code location
$ steep query hover lib/steep/services/signature_service.rb:3:15

# `query definition` command with a name of type or method
$ steep query definition Steep::Services::SignatureService#apply_changes

Steep 2.0 provides steep query hover and steep query definition commands for the type of expression and definition locations.

steep check -e

steep check with -e option allows type checking Ruby expression from the command line.

$ steep check -e "1+true"
# Type checking expression:

(expression):1:0: [error] Cannot find compatible overloading of method `+` of type `::Integer`
│ Method types:
│   def +: (::Integer) -> ::Integer
│        | (::Float) -> ::Float
│        | (::Rational) -> ::Rational
│        | (::Complex) -> ::Complex
│
│ Diagnostic ID: Ruby::UnresolvedOverloading
│
└ 1+true
  ~~~~~~

Detected 1 problem from 1 expression

The command will help you quickly type check a Ruby expression without editing files.

Diagnostics updates

Steep 2.0 adds the following new diagnostics.

  • Ruby::RedundantIgnoreComment Reports a steep:ignore comment is no longer necessary -- no type error is reported there.
  • Ruby::LibraryRBSError Reports library RBS files have error and type checking cannot be done.

Clone this wiki locally