Repository Analysis

atuinsh/atuin

✨ Making your shell magical

5.2 Low AI signal View on GitHub
5.2
Adjusted Score
5.2
Raw Score
100%
Time Factor
2026-05-30
Last Push
29,920
Stars
Rust
Language
86,370
Lines of Code
412
Files
236
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 111LOW 125

Pattern Findings

236 matches across 5 categories. Click a row to expand file-level details.

Decorative Section Separators105 hits · 308 pts
SeverityFileLineSnippet
MEDIUMcrates/atuin-ai/src/stream.rs1// ───────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/stream.rs3// ───────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/snapshots.rs183 // ── sanitize_path ──────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/snapshots.rs241 // ── atomic_write_file ──────────────────────────────────────
MEDIUMcrates/atuin-ai/src/snapshots.rs291 // ── SnapshotStore ──────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/driver.rs70 // ─── From FSM ───────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/driver.rs78 // ─── Session metadata (set once) ────────────────────────────
MEDIUMcrates/atuin-ai/src/driver.rs83 // ─── View-only ──────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/driver.rs86 // ─── Pre-computed for rendering ────────────────────────────
MEDIUMcrates/atuin-ai/src/driver.rs92 // ─── Ephemeral interaction state ────────────────────────────
MEDIUMcrates/atuin-ai/src/tui/view/mod.rs434// ───────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/tui/view/mod.rs436// ───────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/tui/view/mod.rs696// ───────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/tui/view/mod.rs698// ───────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs10 // ─── User actions ───────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs24 // ─── Stream lifecycle ───────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs50 // ─── Suggest command (terminal tool call) ───────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs55 // ─── Tool lifecycle ─────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs80 // ─── Timers ─────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs86 // ─── Session management ─────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs90 // ─── Slash commands ─────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/events.rs96 // ─── Skills ────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/effects.rs26 // ─── Network ────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/effects.rs35 // ─── Tool orchestration ─────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/effects.rs54 // ─── Persistence ────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/effects.rs68 // ─── Timers ─────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/effects.rs76 // ─── Exit ───────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/mod.rs113 // ─── View state (owned by FSM for atomic transitions) ───────
MEDIUMcrates/atuin-ai/src/fsm/mod.rs530 // ─── Cancel during Turn ─────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/mod.rs641 // ────────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/fsm/mod.rs643 // ────────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs53// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs57// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs178 // ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs180 // ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs282// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs284// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs331// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs333// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs461// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs463// ────────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs784 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs786 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs816 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs818 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs847 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs849 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs866 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs868 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs895 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs897 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs949 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs951 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs981 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs983 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs998 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs1000 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs1040 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs1042 // ────────────────────────────────────────────────────────────
MEDIUMcrates/atuin-ai/src/permissions/shell.rs1054 // ────────────────────────────────────────────────────────────
45 more matches not shown…
Over-Commented Block121 hits · 120 pts
SeverityFileLineSnippet
LOWdeny.toml1# This template contains all of the possible sections and their default values
LOWdeny.toml81# This section is considered when running `cargo deny check sources`.
LOWcliff.toml1# git-cliff ~ default configuration file
LOW.rustfmt.toml1reorder_imports = true
LOWcrates/atuin-client/config.toml1## Base directory for Atuin data files (databases, keys, session, etc.)
LOWcrates/atuin-client/config.toml21
LOWcrates/atuin-client/config.toml41## is ran, so sync intervals may well be longer
LOWcrates/atuin-client/config.toml61
LOWcrates/atuin-client/config.toml81## when atuin is invoked from a shell up-key binding
LOWcrates/atuin-client/config.toml101
LOWcrates/atuin-client/config.toml121## prevent commands matching any of these regexes from being written to history.
LOWcrates/atuin-client/config.toml141## Useful when you have long scripts in your history that you want to distinguish
LOWcrates/atuin-client/config.toml161## 1. AWS key id
LOWcrates/atuin-client/config.toml181## "vim-normal", the startup keymap mode in the Atuin search is forced to be
LOWcrates/atuin-client/config.toml201## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
LOWcrates/atuin-client/config.toml221# "systemctl",
LOWcrates/atuin-client/config.toml241# exit_past_line_start = true
LOWcrates/atuin-client/config.toml261## auto: length of the selected command.
LOWcrates/atuin-client/config.toml281
LOWcrates/atuin-client/config.toml301## https://ogeon.github.io/docs/palette/master/palette/named/index.html
LOWcrates/atuin-client/config.toml321## Note: The tmux popup is currently supported in zsh, bash, and fish shells. This currently doesn't work with iTerm nat
LOWcrates/atuin-client/config.toml341## duration (5) - Command execution duration (e.g., "123ms")
LOWcrates/atuin-client/config.toml361## With wider directory column:
LOWcrates/atuin-client/src/hub.rs161}
LOWcrates/atuin-client/src/encryption.rs401 }
LOWcrates/atuin-client/src/history.rs61}
LOWcrates/atuin-client/src/history.rs381 ///
LOWcrates/atuin-client/src/history.rs401 /// .exit(0)
LOWcrates/atuin-client/src/history.rs421 }
LOWcrates/atuin-client/src/history.rs441 /// Command without any required info cannot be captured, which is forced at compile time:
LOWcrates/atuin-client/src/history.rs461 /// the command is finished, such as `exit` or `duration`.
LOWcrates/atuin-client/src/history.rs481 /// Command without any required info cannot be captured, which is forced at compile time:
LOWcrates/atuin-client/src/history.rs501 /// All fields are required, as they are all present in the database.
LOWcrates/atuin-client/src/settings.rs361pub struct Sync {
LOWcrates/atuin-client/src/settings.rs381 /// Infer from sync_address (default behavior)
LOWcrates/atuin-client/src/settings.rs461/// A single rule within a conditional keybinding config.
LOWcrates/atuin-client/src/settings/watcher.rs1//! Config file watching for automatic settings reload.
LOWcrates/atuin-client/src/history/store.rs21
LOWcrates/atuin-client/src/import/zsh_histdb.rs1// import old shell history from zsh-histdb!
LOWcrates/atuin-client/src/import/zsh_histdb.rs21// commands.argv
LOWcrates/atuin-pty-proxy/src/osc133.rs1//! Streaming parser for OSC 133 (FinalTerm semantic prompt) escape sequences.
LOWcrates/atuin-pty-proxy/src/osc133.rs41/// The current semantic zone as determined by the most recent OSC 133 marker.
LOWcrates/atuin-nucleo/matcher/src/pattern.rs21 Ignore,
LOWcrates/atuin-nucleo/matcher/src/pattern.rs41}
LOWcrates/atuin-nucleo/matcher/src/pattern.rs61 /// prefix. This atom kind is parsed from the following syntax: `^foo` and
LOWcrates/atuin-nucleo/matcher/src/pattern.rs361 matcher.postfix_indices(haystack, self.needle.slice(..), indices)
LOWcrates/atuin-nucleo/matcher/src/pattern.rs501 /// configuration from `matcher`), calculates a ranking score and the match
LOWcrates/atuin-nucleo/matcher/src/utf32_str.rs21 string.is_ascii() && memmem::find(string.as_bytes(), b"\r\n").is_none()
LOWcrates/atuin-nucleo/matcher/src/utf32_str.rs41/// Despite the name, this type is quite far from being a true string type. Here are some
LOWcrates/atuin-nucleo/matcher/src/utf32_str.rs61/// strings containing `\r\n` will still result in a `Unicode` variant.
LOWcrates/atuin-nucleo/matcher/src/utf32_str.rs81/// Of course, this comes at extra memory cost as we usually still need the UTF-8
LOWcrates/atuin-nucleo/matcher/src/lib.rs101mod tests;
LOWcrates/atuin-nucleo/matcher/src/lib.rs121/// should be used when rendering the best N matches. Note that the `indices`
LOWcrates/atuin-nucleo/matcher/src/lib.rs141/// `foo hello-world bar` ranks higher.
LOWcrates/atuin-nucleo/matcher/src/lib.rs201 /// To avoid slowdowns it automatically falls back to
LOWcrates/atuin-nucleo/matcher/src/score.rs21
LOWcrates/atuin-nucleo/matcher/src/chars/normalize.rs1/// Normalize a Unicode character by converting Latin characters which are variants
LOWcrates/atuin-nucleo/src/boxcar.rs1//! Adapted from the `boxcar` crate at <https://github.com/ibraheemdev/boxcar/blob/master/src/raw.rs>
LOWcrates/atuin-nucleo/src/lib.rs81
LOWcrates/atuin-nucleo/src/lib.rs221 /// Returns a reference to the item at the given index.
61 more matches not shown…
AI Slop Vocabulary5 hits · 15 pts
SeverityFileLineSnippet
MEDIUMcrates/atuin-ai/src/tui/components/markdown.rs3//! More robust than eye-declare's built-in Markdown component:
MEDIUMcrates/atuin/src/shell/atuin.bash41 # robust way to detect the command for keybindings, but at least we
MEDIUMcrates/atuin/src/shell/atuin.bash84 # With ble.sh, we utilize the shell variable `_ble_exec_time_ata`
MEDIUMcrates/atuin/src/shell/atuin.bash424# To realize the enter_accept feature in a robust way, we need to call the
MEDIUMcrates/atuin/src/shell/atuin.bash427# `accept-line', we may utilize string macros of readline. When we bind KEYSEQ
Redundant / Tautological Comments4 hits · 5 pts
SeverityFileLineSnippet
LOWcrates/atuin-client/config.toml196## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
LOWcrates/atuin/src/shell/atuin.zsh55# Check if tmux popup is available (tmux >= 3.2)
LOWcrates/atuin/src/shell/atuin.bash243# Check if tmux popup is available (tmux >= 3.2)
LOWscripts/release.sh267 # Check if the entry is empty (just a heading with no content)
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM.github/workflows/release.yml266 # Create a GitHub Release while uploading all files to it