https://github.com/mattbrictson/airbrussh
Airbrussh pretties up your SSHKit and Capistrano output
https://github.com/mattbrictson/airbrussh
Keywords
capistrano sshkit
Keywords from Contributors
ssh crash-reporting rubygems activerecord deployment mvc feature-flag activejob error-monitoring sinatra
Last synced: about 20 hours ago
JSON representation
Repository metadata
Airbrussh pretties up your SSHKit and Capistrano output
- Host: GitHub
- URL: https://github.com/mattbrictson/airbrussh
- Owner: mattbrictson
- License: mit
- Created: 2015-02-20T06:57:33.000Z (about 11 years ago)
- Default Branch: main
- Last Pushed: 2026-02-02T01:13:25.000Z (30 days ago)
- Last Synced: 2026-02-03T21:59:58.376Z (28 days ago)
- Topics: capistrano, sshkit
- Language: Ruby
- Homepage:
- Size: 3.19 MB
- Stars: 512
- Watchers: 6
- Forks: 33
- Open Issues: 11
- Releases: 32
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
README.md
Airbrussh
Airbrussh is a concise log formatter for Capistrano and SSHKit. It displays well-formatted, useful log output that is easy to read. Airbrussh also saves Capistrano's verbose output to a separate log file just in case you need additional details for troubleshooting.
As of April 2016, Airbrussh is bundled with Capistrano 3.5, and is Capistrano's default formatter! There is nothing additional to install or enable. Continue reading to learn more about Airbrussh's features and configuration options.
If you aren't yet using Capistrano 3.5 (or wish to use Airbrussh with SSHKit directly), refer to the advanced/legacy usage section for installation instructions.

For more details on how exactly Airbrussh affects Capistrano's output and the reasoning behind it, check out the blog post: Introducing Airbrussh.
Usage
Airbrussh is enabled by default in Capistrano 3.5 and newer. To manually enable Airbrussh (for example, when upgrading an existing project), set the Capistrano format like this:
# In deploy.rb
set :format, :airbrussh
What's displayed
When you run a Capistrano command, Airbrussh provides the following information in its output:

- Name of Capistrano task being executed
- When each task started (minutes:seconds elapsed since the deploy began)
- The SSH command-line strings that are executed; for Capistrano tasks that involve running multiple commands, the numeric prefix indicates the command in the sequence, starting from
01 - Stdout and stderr output from each command
- The duration of each command execution, per server
What's not displayed
For brevity, Airbrussh does not show everything that Capistrano is doing. For example, it will omit Capistrano's test commands, which can be noisy and confusing. Airbrussh also hides things like environment variables, as well as cd and env invocations. To see a full audit of Capistrano's execution, including exactly what commands were run on each server, look at log/capistrano.log.
Configuration
You can customize many aspects of Airbrussh's output. In Capistrano 3.5 and newer, this is done via the :format_options variable, like this:
# Pass options to Airbrussh
set :format_options, color: false, truncate: 80
Here are the options you can use, and their effects (note that the defaults may be different depending on where Airbrussh is used; these are the defaults used by Capistrano 3.5):
| Option | Default | Usage |
|---|---|---|
banner |
nil |
Provide a string (e.g. "Capistrano started!") that will be printed when Capistrano starts up. |
color |
:auto |
Use true or false to enable or disable ansi color. If set to :auto, Airbrussh automatically uses color based on whether the output is a TTY, or if the SSHKIT_COLOR environment variable is set. |
command_output |
true |
Set to :stdout, :stderr, or true to display the SSH output received via stdout, stderr, or both, respectively. Set to false to not show any SSH output, for a minimal look. |
context |
Airbrussh::Rake::Context |
Defines the execution context. Targeted towards uses of Airbrussh outside of Rake/Capistrano. Alternate implementations should provide the definition for current_task_name, register_new_command, and position. |
log_file |
log/capistrano.log |
Capistrano's verbose output is saved to this file to facilitate debugging. Set to nil to disable completely. |
truncate |
:auto |
Set to a number (e.g. 80) to truncate the width of the output to that many characters, or false to disable truncation. If :auto, output is automatically truncated to the width of the terminal window, if it can be determined. |
task_prefix |
nil |
A string to prefix to task output. Handy for output collapsing like buildkite's --- prefix |
FAQ
Airbrussh is not displaying the output of my commands! For example, I run tail in one of my capistrano tasks and airbrussh doesn't show anything. How do I fix this?
Make sure Airbrussh is configured to show SSH output.
set :format_options, command_output: true
I haven't upgraded to Capistrano 3.5 yet. Can I still use Airbrussh?
Yes! Capistrano 3.4.x is also supported. Refer to the advanced/legacy usage section for installation instructions.
Does Airbrussh work with Capistrano 2?
No, Capistrano 3 is required. We recommend Capistrano 3.4.0 or higher. Capistrano 3.5.0 and higher have Airbrussh enabled by default, with no installation needed.
Does Airbrussh work with JRuby?
JRuby is not officially supported or tested, but may work. You must disable automatic truncation to work around a known bug in the JRuby 9.0 standard library. See #62 for more details.
set :format_options, truncate: false
I have a question that’s not answered here or elsewhere in the README.
Please open a GitHub issue and we’ll be happy to help!
Advanced/legacy usage
Although Airbrussh is built into Capistrano 3.5.0 and higher, it is also available as a plug-in for older versions. Airbrussh has been tested with MRI 1.9+, Capistrano 3.4.0+, and SSHKit 1.6.1+.
Capistrano 3.4.x
Add this line to your application's Gemfile:
gem "airbrussh", require: false
And then execute:
$ bundle
Finally, add this line to your application's Capfile:
require "airbrussh/capistrano"
Important: explicitly setting Capistrano's :format option in your deploy.rb will override airbrussh. Remove this line if you have it:
# Remove this
set :format, :pretty
Capistrano 3.4.x doesn't have the :format_options configuration system, so you will need to configure Airbrussh using this technique:
Airbrussh.configure do |config|
config.color = false
config.command_output = true
# etc.
end
Refer to the configuration section above for the list of supported options.
SSHKit
If you are using SSHKit directly (i.e. without Capistrano), you can use Airbrussh like this:
require "airbrussh"
SSHKit.config.output = Airbrussh::Formatter.new($stdout)
# You can also pass configuration options like this
SSHKit.config.output = Airbrussh::Formatter.new($stdout, color: false)
History
Airbrussh started life as custom logging code within the capistrano-mb collection of opinionated Capistrano recipes. In February 2015, the logging code was refactored into a standalone gem with its own configuration and documentation, and renamed airbrussh. In February 2016, Airbrussh was added as the default formatter in Capistrano 3.5.0.
Roadmap
Airbrussh now has a stable feature set, excellent test coverage, is being used for production deployments, and has reached 1.0.0! If you have ideas for improvements to Airbrussh, please open a GitHub issue.
Contributing
Contributions are welcome! Read CONTRIBUTING.md to get started.
Owner metadata
- Name: Matt Brictson
- Login: mattbrictson
- Email:
- Kind: user
- Description: Rubyist and full-stack web developer. Open source maintainer. Former director of engineering @carbonfive.
- Website:
- Location: San Francisco
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/189693?u=e5176c54d1572e5a3ee8fc4295d3d21320dae2de&v=4
- Repositories: 56
- Last ynced at: 2023-03-16T12:00:22.370Z
- Profile URL: https://github.com/mattbrictson
GitHub Events
Total
- Delete event: 13
- Pull request event: 19
- Fork event: 1
- Watch event: 2
- Push event: 29
- Create event: 13
Last Year
- Delete event: 11
- Pull request event: 15
- Fork event: 1
- Push event: 24
- Create event: 11
Committers metadata
Last synced: 2 days ago
Total Commits: 282
Total Committers: 13
Avg Commits per committer: 21.692
Development Distribution Score (DDS): 0.199
Commits in past year: 16
Committers in past year: 2
Avg Commits per committer in past year: 8.0
Development Distribution Score (DDS) in past year: 0.375
| Name | Commits | |
|---|---|---|
| Matt Brictson | m****t@m****m | 226 |
| Rob Dupuis | r****d@r****k | 35 |
| dependabot[bot] | 4****] | 6 |
| Simon Hürlimann | s****m@p****h | 4 |
| gondalez | g****z@g****m | 2 |
| Richard | r****y@g****m | 2 |
| Patrick Blesi | p****k@b****i | 1 |
| Nick Hammond | n****k@n****m | 1 |
| Jean Boussier | j****r@g****m | 1 |
| Jared Beck | j****d@j****m | 1 |
| Gabe Martin-Dempesy | g****e@z****m | 1 |
| Felix Bünemann | b****n@l****o | 1 |
| Luka Lüdicke | l****e@d****e | 1 |
Committer domains:
- dkd.de: 1
- louis.info: 1
- zendesk.com: 1
- jaredbeck.com: 1
- nickhammond.com: 1
- ble.si: 1
- panter.ch: 1
- robd.co.uk: 1
- mattbrictson.com: 1
Issue and Pull Request metadata
Last synced: 30 days ago
Total issues: 48
Total pull requests: 73
Average time to close issues: 28 days
Average time to close pull requests: 27 days
Total issue authors: 32
Total pull request authors: 14
Average comments per issue: 2.92
Average comments per pull request: 1.22
Merged pull request: 65
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 3
Past year average time to close issues: N/A
Past year average time to close pull requests: about 7 hours
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- mattbrictson (13)
- robd (3)
- pblesi (2)
- jcoyne (2)
- mbouchard (1)
- notapatch (1)
- jasonperrone (1)
- benebrice (1)
- jaredbeck (1)
- klyonrad (1)
- andrer0cha (1)
- avonderluft (1)
- dbackeus (1)
- adamdilek (1)
- brand-it (1)
Top Pull Request Authors
- mattbrictson (59)
- notapatch (2)
- gondalez (1)
- robd (1)
- klyonrad (1)
- gabetax (1)
- brand-it (1)
- felixbuenemann (1)
- pblesi (1)
- huerlisi (1)
- jcoyne (1)
- byroot (1)
- jaredbeck (1)
- nickhammond (1)
Top Issue Labels
- bug? (8)
- new feature (8)
- confirmed bug (8)
- discuss! (7)
- help wanted (6)
- chore (5)
- question (2)
- needs more info (1)
Top Pull Request Labels
- 🏠 Housekeeping (33)
- ✨ Feature (2)
- 🐛 Bug Fix (1)
Package metadata
- Total packages: 13
-
Total downloads:
- rubygems: 94,182,543 total
- Total docker downloads: 35,405,836
- Total dependent packages: 7 (may contain duplicates)
- Total dependent repositories: 15,284 (may contain duplicates)
- Total versions: 105
- Total maintainers: 1
gem.coop: airbrussh
A replacement log formatter for SSHKit that makes Capistrano output much easier on the eyes. Just add Airbrussh to your Capfile and enjoy concise, useful log output that is easy to read.
- Homepage: https://github.com/mattbrictson/airbrussh
- Documentation: http://www.rubydoc.info/gems/airbrussh/
- Licenses: MIT
- Latest release: 1.6.0 (published 3 months ago)
- Last Synced: 2026-02-27T15:31:05.643Z (4 days ago)
- Versions: 32
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 47,096,755 Total
- Docker Downloads: 17,702,918
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.176%
- Downloads: 0.528%
- Maintainers (1)
ubuntu-20.04: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Licenses: mit
- Latest release: 1.4.0-1 (published 19 days ago)
- Last Synced: 2026-02-13T07:09:42.815Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.593%
- Stargazers count: 0.892%
- Forks count: 1.478%
rubygems.org: airbrussh
A replacement log formatter for SSHKit that makes Capistrano output much easier on the eyes. Just add Airbrussh to your Capfile and enjoy concise, useful log output that is easy to read.
- Homepage: https://github.com/mattbrictson/airbrussh
- Documentation: http://www.rubydoc.info/gems/airbrussh/
- Licenses: MIT
- Latest release: 1.6.0 (published 3 months ago)
- Last Synced: 2026-02-27T07:01:10.629Z (5 days ago)
- Versions: 32
- Dependent Packages: 7
- Dependent Repositories: 15,284
- Downloads: 47,085,788 Total
- Docker Downloads: 17,702,918
-
Rankings:
- Dependent repos count: 0.284%
- Downloads: 0.501%
- Docker downloads count: 1.113%
- Average: 1.897%
- Dependent packages count: 2.484%
- Stargazers count: 2.504%
- Forks count: 4.493%
- Maintainers (1)
proxy.golang.org: github.com/mattbrictson/airbrussh
- Homepage:
- Documentation: https://pkg.go.dev/github.com/mattbrictson/airbrussh#section-documentation
- Licenses: mit
- Latest release: v1.6.0 (published 3 months ago)
- Last Synced: 2026-02-27T16:33:17.834Z (4 days ago)
- Versions: 31
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Stargazers count: 2.637%
- Forks count: 3.924%
- Average: 6.735%
- Dependent packages count: 9.576%
- Dependent repos count: 10.802%
debian-10: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Documentation: https://packages.debian.org/buster/ruby-airbrussh
- Licenses: mit
- Latest release: 1.3.1-2+deb10u1 (published 20 days ago)
- Last Synced: 2026-02-13T04:19:11.217Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.04: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Licenses:
- Latest release: 1.4.1-1 (published 21 days ago)
- Last Synced: 2026-02-11T06:35:12.312Z (21 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.10: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Licenses: mit
- Latest release: 1.4.1-1 (published 18 days ago)
- Last Synced: 2026-02-13T18:14:38.559Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-11: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Documentation: https://packages.debian.org/bullseye/ruby-airbrussh
- Licenses:
- Latest release: 1.4.0-2 (published 21 days ago)
- Last Synced: 2026-02-13T08:18:30.353Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-22.04: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Licenses:
- Latest release: 1.4.0-2 (published 18 days ago)
- Last Synced: 2026-02-13T13:12:16.207Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-13: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Documentation: https://packages.debian.org/trixie/ruby-airbrussh
- Licenses:
- Latest release: 1.5.2-1 (published 19 days ago)
- Last Synced: 2026-02-13T13:13:15.721Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-12: ruby-airbrussh
- Homepage: https://github.com/mattbrictson/airbrussh
- Documentation: https://packages.debian.org/bookworm/ruby-airbrussh
- Licenses:
- Latest release: 1.4.1-1 (published 19 days ago)
- Last Synced: 2026-02-12T23:24:55.874Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
Dependencies
- coveralls ~> 0.8.15
- guard >= 2.2.2
- guard-minitest >= 0
- json ~> 1.8
- minitest ~> 5.11.3
- net-ssh ~> 2.8
- rake < 12.3
- rb-fsevent >= 0
- rubocop = 0.50.0
- term-ansicolor ~> 1.3.2
- terminal-notifier-guard >= 0
- tins ~> 1.6.0
- bundler >= 0 development
- minitest ~> 5.10 development
- minitest-reporters ~> 1.1 development
- mocha ~> 1.2 development
- rake ~> 12.0 development
- sshkit >= 1.6.1, != 1.7.0
- release-drafter/release-drafter v5 composite
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
Score: 27.50452403179