Back to Explore

sarugaku/shellingham

GitHub
1 watchersOpen source

Last release:

Shellingham is a Python tool that detects what shell the current Python process is running inside. It provides a `detect_shell()` function that returns the shell name (lowercased) and the command used, and raises `ShellDetectionFailure` if it cannot detect a surrounding shell.

Project status

  • The repository has evidence of activity (last upstream push on 2026-03-13), but the most recently documented version updates are much older (latest shown, 1.5.4 on 2023-10-24).
  • Update cadence appears irregular, with a gap of roughly 1.5 years from the last tagged update to today (2026-07-19), suggesting maintenance mode rather than steady evolution.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 1.5.4

    Shellingham 1.5.4 is primarily a bug fix release, addressing incorrect shell detection behavior on macOS. The change set also refreshes CI tooling (newer GitHub Actions versions, adds Python 3.12 to the test matrix) and updates the development dependency lockfile.

  • 1.5.3

    Release 1.5.3 is a small maintenance patch that updates the library version and adjusts how shellingham walks process parent chains on POSIX. The main behavioral change is in the /proc-based parent iteration, where a proc-format support error is raised earlier instead of being deferred until the iterator is consumed.

  • 1.5.2

    Release 1.5.2 was published on 2023-08-16, but no release notes were provided by the publisher. As a result, there is no documented information here about new features, bug fixes, breaking changes, or security updates, so developers should review the actual diff for this version before upgrading.

  • 1.5.0.post1

    Release 1.5.0.post1 updates package metadata so installation is restricted to Python >= 3.7, and refreshes README rendering to use reStructuredText code-block directives for syntax highlighting. The code changes are primarily packaging and documentation, with no apparent runtime API changes.

  • 1.5.0

    Shellingham 1.5.0 updates several dependencies and adds detection support for the NuShell executable name. The release also includes a broader “modern python” refactor and CI/publish workflow additions.

    BreakingFeatures
  • 1.3.1

    Version 1.3.1 is a small bug fix release focused on shell detection. It corrects a typo in the internal shell-name list so that both ash and csh are detected properly.

  • 1.3.0

    Version 1.3.0 primarily adds detection support for the Almquist shell (ash). The code change is minimal, extending the set of recognized shell names so that processes running ash can be identified.

    Features
  • 1.2.8

    Version 1.2.8 focuses on process detection robustness improvements. It updates Posix `ps` output parsing and improves Windows executable name decoding to better handle non-ASCII process names.

  • 1.2.7

    Release 1.2.7 primarily improves robustness of process detection on POSIX by handling the case where the `ps` command returns with empty output. The change prevents failures when `ps` yields an empty process list.

  • 1.2.6

    Version 1.2.6 is a small release described as a minor Python 3 compatibility fix. The code changes are limited to a version bump, plus a change in how the POSIX process cmdline is split.

  • 1.2.5

    Release 1.2.5 focuses on improving how Shellingham parses data from the Linux /proc filesystem, specifically to avoid failures when /proc contains non-decodable command line arguments. The main functional change is in the POSIX proc parsing code.

  • 1.2.4

    Version 1.2.4 is a Windows-focused fix intended to prevent an exception when an executable path is too long for the Windows PROCESSENTRY32 structure. The implementation refactors Windows process enumeration and adds special handling for the ERROR_INSUFFICIENT_BUFFER case.