Eris maintains an up-to-date set of reports for every file in a codebase.
Find a file
Andrew Hamilton 980ee7071c Replace killpg-on-self with thread-scoped subprocess kill on quit
Removes the shell's "Killed" message and lets fill3's terminal-restore
codes flush via normal interpreter exit. Worker.kill() now SIGKILLs only
the worker thread's subprocess descendants (via /proc/PID/task/TID/children,
recursing through shell=True grandchildren), so editor and xdg-open spawns
from the main thread survive quit. A _killed flag skips persisting result
pickles for aborted tool runs. start_new_session=True is no longer needed
on editor/xdg-open launches since the kill is worker-thread-scoped.
2026-08-04 08:31:28 +10:00
eris Replace killpg-on-self with thread-scoped subprocess kill on quit 2026-08-04 08:31:28 +10:00
packaging Fix --version and make killpg fire under uv run 2026-08-03 10:44:53 +10:00
tests Replace killpg-on-self with thread-scoped subprocess kill on quit 2026-08-04 08:31:28 +10:00
.gitignore add Shiv-based build for standalone eris executable 2026-07-30 12:06:57 +10:00
.python-version Pin free-threaded Python explicitly in .python-version 2026-08-03 12:57:23 +10:00
BUGS Update TODO and BUGS. 2021-12-15 08:58:45 +10:00
install Now using uv instead of pipx 2025-06-04 22:54:51 +10:00
LICENSE Update license. 2022-01-01 11:15:13 +10:00
pyproject.toml Use worker threads instead of subprocesses, bump to 2026.8.3 2026-08-03 09:46:44 +10:00
README.md Fix --version and make killpg fire under uv run 2026-08-03 10:44:53 +10:00
test-all Using standard pytest for testing 2026-07-31 21:18:59 +10:00
TODO Update TODO 2026-07-31 21:21:02 +10:00
uv.lock Use worker threads instead of subprocesses, bump to 2026.8.3 2026-08-03 09:46:44 +10:00

Eris Codebase Monitor

Summary

Eris maintains an up to date set of reports for every file in a codebase.

Installation

Debian / Ubuntu / Fedora / Arch / Alpine

Install uv first if you don't have it.

Use uv to install eris:

uv tool install --python 3.14 git+https://forgejo.tail556789.ts.net/ahamilton/eris@2026.8.3

Then use eris to install all the tools it uses:

eris --install-all-tools

Then to run:

eris
eris-webserver <project>  # Or a simple web interface.

Tools

File types(103) Tools(63)
.* contents • metadata • git_diff • git_blame • git_log
.py python_syntax • python_unittests • pytest • pydoc • mypy • python_coverage • pycodestyle • pyflakes • pylint • python_gut • python_mccabe • bandit • black • isort
.pl .pm .t perl_syntax • perldoc
.p6 .pm6 perl6_syntax
.pod .pod6 perldoc
.c .h c_syntax_gcc • cppcheck
.cc .cpp .hpp cpp_syntax_gcc • cppcheck
.rb ruby_syntax • rubocop
.rs rustfmt • clippy
.lua lua_syntax • lua_check
.js .ts js_syntax • typescript_check
.php php8_syntax
.go go_vet • godoc
.bash .sh .dash .ksh shellcheck
.wat wat_syntax_check
.wasm wasm_validate • wasm_objdump
.pdf pdf2txt
.html .htm html_syntax • html2text • elinks
.yaml .yml yamllint
.md .epub .docx .odt .rst pandoc
.zip .jar .apk .egg .whl zipinfo
.tar.gz .tgz tar_gz
.tar.bz2 tar_bz2
.7z 7z
.xz unxz
.a ar • nm
.o objdump_headers • objdump_disassemble • readelf
.so nm
.deb dpkg_contents • dpkg_info
.rpm rpm
.png .jpg .jpeg .gif .bmp .tif .tiff .tga .ico .xpm mediainfo • pil
.svg .svgz cairosvg
.mkv .mka .mks .ogg .ogm .avi .wav .mpeg .mpg .vob .mp4 .mpgv .mpv .m1v .m2v .mp2 .mp3 .asf .wma .wmv .qt .mov .rm .rmvb .ra .ifo .ac3 .dts .aac .flac .aiff .aifc .au .iff .flv .srt .ssa .ass .sami mediainfo
.iso isoinfo