Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

JavaSee logo


JavaSee is a fully customizable linter for Java code, where you can define your own rules specific to your project or your company in YAML.

For example, you can write your javasee.yml file as follow:

  - id:
    pattern: new ArrayList(...)
    message: In this company, you shouldn't use ArrayList

I don't know why the company prohibits using ArrayList, but assume a company has such a rule. Probably no linter in the world provides this rule, but you can implement it using JavaSee in three lines of code as you can see in the example above.

Some rules you want are too subtle or too project/team dependent so general lint tools don’t have them. JavaSee offers a new way to access linter rules: you can define your rules with a pattern language, which makes defining new rules 10x easier!


It requires Java 11 or later.

You can download the binary distribution from the releases page. Unzip the archive, and execute the javasee or javasee.bat included in the bin directory.

$ javasee-some-version/bin/javasee

You can build from the source code.

$ git clone htts://
$ cd JavaSee
$ ./gradlew shadowjar
$ java -jar build/libs/JavaSee-all.jar

Docker images

We provide Docker images to help you trying JavaSee without installing Java 11.

$ docker pull sider/javasee
$ docker run -t --rm -v `pwd`:/work sider/javasee

The default latest tag points to the latest released version. You can pick a tag from version names from tags list.

Quick start

$ javasee init          # Generate a config file in your repository.
$ vim javasee.yml       # Edit the config file to define your rules.
$ javasee check         # Run the linter.



  1. Update the changelog and the version.
  2. Run the command for test: ./gradlew clean build
  3. Commit the updated files via ./gradlew commit
  4. Open a new pull request including the commit and merge it when the CI passes.
  5. Create a tag for the commit via ./gradlew tag
  6. Push the commit and tag, e.g. git push --follow-tags
  7. Edit and publish the draft release.


JavaSee: Query Method Calls from Java Programs. It's Java version of querly




No packages published

Contributors 4