Skip to content
Browse files

Update (#128)

This commit updates Bento's to clarify installation, value propositions, and behavior.
  • Loading branch information
dlukeomalley committed Oct 25, 2019
1 parent 959cc82 commit de84bc44a5dbd24813380229fc166476b9591e5e
Showing with 80 additions and 96 deletions.
  1. +80 −96
  2. BIN bento-demo.gif
@@ -1,117 +1,101 @@
# Bento
Bento automatically tailors linters and static analysis with sane defaults on a per-project basis, letting you focus on writing code rather than configuring tools. Bento is free, fully-featured, and you can run Bento on as many projects as you like.
<h1 align="center" style="margin-top:0;">
<h3 align="center">
Free program analysis focused on bugs that matter to you.
<p align="center">
Install, configure, and adopt Bento in seconds. Runs 100% locally.
<p align="center">
<a href="">
<img alt="PyPI" src="">
<a href="">
<img alt="PyPI - Downloads" src="">
<a href="">
<img src="" alt="Issues welcome!" />
<a href="">
<img src="">
<a href="">
<img src="" alt="Follow @r2cdev" />

Bento is a free and opinionated toolkit for gradually adopting linters[¹]( and program analysis[²]( in your codebase. Be the bug-squashing advocate your team needs but (maybe) doesn’t deserve.

- **Find bugs that matter.** Bento automatically enables and configures relevant analysis based on your dependencies and frameworks, and it will never report style-related issues. You won’t painstakingly configure your tooling.
- **Get started immediately.** Bento doesn’t force you to fix all your preexisting issues today. Instead, you can archive them and address them incrementally when it makes sense for your project.
- **Go fast.** Bento installs in 5 seconds and self-configures in less than 30. Its tools check your code in parallel, not sequentially.

Bento includes checks written by [r2c]( and curated from [Bandit](, [ESLint](, [Flake8](, and their plugins. It runs on your local machine and never sends your code anywhere or to anyone.

<p align="center">
<img src="bento-demo.gif" width="90%" alt="gif demonstrating Bento running in a terminal"/>

## Installation

### Requirements

Bento is supported on macOS Mojave (10.14) and Ubuntu 18.04+, and requires Python 3.6 or later, and pip3.

Bento supports npm-packaged JavaScript and Python, and is ideal for monorepos.

To run Bento on projects that include JavaScript, Node.js is required and the following versions are supported:

* Node.js 8 (8.10.0 and above)
* Node.js 10 (10.13.0 and above)
* Anything above Node.js 11.10.1

### Installing Bento
Bento is a command-line tool that is simple to install:

pip3 install bento-cli

## Usage
The workflow for Bento is:

1. Initialize Bento
2. Run Bento checks on your source code
3. Fix issues or archive unnecessary warning and errors
4. Disable undesired checks
5. Add Bento to git pre-commit hooks
6. Add Bento to the CI pipeline (e.g., CircleCI)

### Initialize Bento for a project:

In your project directory, run:

bento init
$ pip3 install bento-cli

and add some of the artifacts bento produces to your .gitignore file:

printf "# Bento tools:\n.bento/" >> .gitignore
Bento is for JavaScript, TypeScript, and Python projects. It requires Python 3.6+ and works on macOS Mojave (10.14) and Ubuntu 18.04+.

### Analyze your source code
To trigger Bento to analyze your project, run:
## Usage
To get started right away with sensible defaults:

bento check
$ bento init && bento check

### Archive outstanding issues

The `archive` command whitelists outstanding issues to fix later. This lets you continue coding with a clean slate without having to address all your tech debt as soon as you adopt a new tool. New issues introduced from this point forward will be reported by Bento until the next time you run the `archive` command.
To set aside preexisting results so you only see issues in new code:

Archive issues by running:

bento archive
$ bento archive

### Disable and enable individual checks
Enable/disable a specific check by running:
Bento really sings when you run it automatically in your editor, as a commit hook (`bento install-hook`), or in CI.

bento enable [OPTIONS] TOOL CHECK
bento disable [OPTIONS] TOOL CHECK
## Command Line Options
$ bento --help
* `TOOL` refers to the tool that includes the check, for example, `r2c.eslint`
* `CHECK` refers to the label for the check you want to enable, for example `no-console`
Usage: bento [OPTIONS] COMMAND [ARGS]...
--version Show current Bento version.
--agree Automatically agree to terms of service.
--help Show this message and exit.
archive Adds all current findings to the whitelist.
check Checks for new findings.
disable Disables a check.
enable Enables a check.
init Autodetects and installs tools.
install-hook Installs Bento as a git pre-commit hook.
bento enable r2c.eslint no-console
You can find the tool and check names in the output of `bento check`. Bento currently supports the following tools:

| Language | Supported Tools |
| Python | Bandit, Flake8 |
| JavaScript | ESLint |

If there are tools you'd like us to add, please let us know by creating an issue.
## Help and Community
- Need help or want to share feedback? Reach out to us at []( We’d love to hear from you! 💌
- Join #bento in our [community Slack]( for support, to talk with other users, and share feedback. 🤝
- We’re fortunate to benefit from the contributions of the open source community and great projects such as [Bandit](, [ESLint](, [Flake8](, and their plugins. 🙏

### Install Bento as a pre-commit hook
Bento can install itself as a pre-commit hook, so it runs before each commit and blocks on failures.

To install bento as a pre-commit hook, simply run:
bento install-hook

## Demo
Here’s a short preview of Bento in action:

![Bento demo](bento-demo.gif)

## Community
Join the Bento channel in our [community Slack]( to receive and give support, talk with other users, and share things about Bento. The r2c team is there and ready to help!

## Terms of service and privacy
## License and Legal
Please refer to the [terms and privacy document](

## License
Copyright (c) [r2c]( ).

![r2c logo](
<p align="center">
<img src="" height="24" alt="r2c logo"/>
<p align="center">
Copyright (c) <a href="">r2c</a>.
BIN -1020 KB (67%) bento-demo.gif
Binary file not shown.

0 comments on commit de84bc4

Please sign in to comment.
You can’t perform that action at this time.