Skip to main content

AI coding safety system for vibecoders

Project description

VibeLign Banner

๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด ย |ย  ๐Ÿ‡บ๐Ÿ‡ธ English

PyPI GitHub Release Python MIT AI Tools


๐ŸŽฎ VibeLign โ€” Safety Guard for AI Coding

VibeLign (vibelign) is an AI coding safety CLI + Desktop GUI for vibe coding workflows. It helps developers and non-developers protect project structure, save checkpoints, undo bad AI edits, manage anchors, and block secret leaks before commit.

๐Ÿ†• v2.2: GUI โ†” Rust core direct bridge (in-process, Python subprocess ์—†์ด ~80ms โ†’ <5ms), ํ†ตํ•ฉ ์—๋Ÿฌ ๋กœ๊ทธ ๋ทฐ + GitHub ์ด์Šˆ ์ž๋™ ๋ณด๊ณ , ์ž๋™ ๋ฐฑ์—… ์‹คํŒจ ๊ฐ€์‹œํ™”. See CHANGELOG. v1 โ†’ v2 ์‚ฌ์šฉ์ž: migration notes.

Documentation: https://yesonsys03-web.github.io/VibeLign/
Repository: https://github.com/yesonsys03-web/VibeLign
Issues: https://github.com/yesonsys03-web/VibeLign/issues
Releases: https://github.com/yesonsys03-web/VibeLign/releases

Sound familiar?

  • You asked AI to add a small feature โ€” it rewrote the entire file
  • All code ended up in main.py โ€” 1000+ lines, impossible to manage
  • AI touched other files and now nothing works
  • You want to undo but don't know how

That's why we made this!

Desktop App (macOS / Windows) โ€” ๐Ÿ“ฅ Download latest release

Mac / Linux (CLI)

pip install vibelign
vib start

Windows (PowerShell, CLI)

# Step 1: install uv โ€” one-time setup, auto-configures PATH
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Close and reopen PowerShell, then:
uv tool install vibelign
vib start

Quick Start


๐Ÿค” What is VibeLign?

AI coding tools (Claude Code, Cursor, etc.) write code fast. But they have problems:

Problem VibeLign Fixes It
All code goes into main.py AI organizes code properly
AI does something different from what you asked Creates precise edit requests
Code breaks and you can't go back Save & Undo feature

Works with any AI tool: Claude Code ยท Cursor ยท Codex ยท OpenCode


๐Ÿ“ Just 3 Things to Remember

Before AI edits  โ†’  vib checkpoint "before work"    # save
AI broke it      โ†’  vib undo                         # undo
Looks good       โ†’  vib checkpoint "done"             # save again

No Git knowledge needed. Just type vib.


๐Ÿš€ Start in 3 Steps

Mac / Linux

# 1. Install
pip install vibelign

# 2. Go to your project folder
cd my-project

# 3. Start!
vib start

Windows (PowerShell)

# 1. Install uv โ€” one-time setup (auto-configures PATH, no warnings)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Close and reopen PowerShell, then:

# 2. Install vibelign
uv tool install vibelign

# 3. Go to your project folder and start!
cd my-project
vib start

๐Ÿ“š All Commands

Basics (Must Know)

Command What It Does
vib start First time only! Set up project
vib checkpoint "message" Save current state (like game save)
vib checkpoint Will ask for a message
vib undo Go back to last save
vib history See all saves
vib backup-db-viewer --json Inspect the Rust backup DB in read-only mode
vib backup-db-maintenance --json Dry-run backup DB file cleanup planning
vib backup-db-maintenance --apply --json Back up DB files, truncate WAL, and conditionally compact the DB

When Asking AI to Code

Command What It Does
vib patch "add button" Tell AI exactly how to edit (Korean OK!)
vib anchor Mark safe areas for AI to edit
vib scan Clean up files + check status

VibeLign patch rules

  • Split composite requests into intent / source / destination / behavior_constraint.
  • If delete and move appear together, treat it as move + preservation unless the user clearly wants removal.
  • Resolve source and destination by role, not with the same rule.
  • If patch contract or codespeak shape changes, update tests and docs together.
  • Keep terminology aligned with the shared glossary and project docs.

Checking & Verification

Command What It Does
vib doctor Check project health
vib explain Explain changes in plain language
vib guard Check if code is broken
vib ask filename.py Ask AI to explain a file

File Protection

Command What It Does
vib protect filename.py Lock important files (AI can't touch)
vib protect --list See locked files
vib protect --remove filename.py Unlock file
vib secrets --staged Block staged API keys, tokens, and .env files before commit

Settings & Export

Command What It Does
vib config Set API keys
vib export claude Create Claude Code settings
vib export cursor Create Cursor settings
vib export opencode Create OpenCode settings

Other Useful Commands

Command What It Does
vib watch Monitor file changes in real-time
vib bench Test how effective anchors are
vib manual Show detailed user guide
vib rules Show all AI development rules
vib transfer Generate PROJECT_CONTEXT.md for switching AI tools
vib transfer --handoff Add Session Handoff block so a new AI can continue immediately
vib transfer --handoff --session-summary "work" --first-next-action "next" Override the handoff summary and first next action
vib transfer --handoff --dry-run Preview handoff output without writing the file
vib completion Set up tab autocomplete
vib install Show step-by-step installation guide

๐Ÿ’ก Recommended Workflow

# First time
vib start

# Before AI edits
vib checkpoint "before login feature"
vib doctor --strict
vib patch "create login button"

# After AI edits
vib explain --write-report
vib guard --strict --write-report

# If done
vib checkpoint "login feature done!"

# If something broke
vib undo

# Hitting a token limit or switching AI tools?
vib transfer --handoff    # generates a Session Handoff block
vib transfer --handoff --no-prompt --print  # automatic handoff + console summary
vib transfer --handoff --session-summary "current session work" --first-next-action "rerun tests"
vib transfer --handoff --dry-run  # preview before writing
# Then tell the new AI: "Read PROJECT_CONTEXT.md first"

transfer compatibility: --handoff cannot be combined with --compact or --full.

vib start now also enables Git secret protection automatically when your project uses Git. Before each commit, VibeLign checks staged changes for API keys, tokens, private keys, and secret-like files such as .env.

# Check manually anytime
vib secrets --staged

๐Ÿ”ง Installation

Option 1: uv (Recommended, faster)

uv tool install vibelign

If you see "is not on your PATH" warning after install:

uv tool update-shell

Then close and reopen your terminal. vib will work after that. If you use bash, run uv tool update-shell from inside bash, or:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Option 2: pip

pip install vibelign

After installation, both vib and vibelign commands are available.

Option 3: Desktop App (GUI)

Download the latest .dmg (macOS, Apple Silicon) or .exe / .msi (Windows) from the Releases page. The GUI bundles the vib runtime โ€” no separate CLI install required.

macOS first-launch: if you see "app is damaged", open Terminal and run xattr -rc vibelign-gui.app (ad-hoc signed, not notarized).

Windows โ€” if vib is not recognized after pip install

When you install with pip on Windows, vib.exe is placed in the Python Scripts folder which may not be in PATH. The pip warning message shows the exact path you need to add:

WARNING: The scripts vib.exe ... are installed in 'C:\Users\...\Scripts' which is not on PATH.

To fix manually:

  1. Press Win + R โ†’ type sysdm.cpl โ†’ Enter
  2. Advanced tab โ†’ Environment Variables
  3. Under System variables, find Path โ†’ click Edit
  4. Click New and paste the Scripts path shown in the pip warning
    • Example: C:\Users\YourName\AppData\Local\Programs\Python\Python312\Scripts\
  5. Click OK โ†’ fully close and reopen PowerShell

Tip: Use uv tool install vibelign to skip this entirely โ€” uv handles PATH automatically.


๐Ÿ“– Want to Learn More?

vib manual          # Detailed user guide
vib manual rules    # AI development rules only
vib rules           # Same as above

๐ŸŽฏ Our Promise

"AI coding is fast. But without safety guards, it can destroy what you built."

VibeLign promises:

  • โœ… Save in 1 second (vib checkpoint "description")
  • โœ… Undo in 1 second (vib undo)
  • โœ… No Git knowledge needed
  • โœ… Easy for beginners

โญ If VibeLign saved your code, a Star would mean a lot โ€” thank you!


๐Ÿ“‹ Release Notes

v2.2.10 โ€” MCP host-LLM pivot PoC + BACKUPS pagination + Explain card cleanup:

  • ๐Ÿง  New MCP tools โ€” anchor_read_content (read inside an anchor boundary, path-traversal blocked, _START/_END suffix auto-normalized) and project_map_get (full project category/file/anchor index in one call). Lets host LLMs (Claude Code / Cursor) map natural-language requests to the right file:anchor directly. Measured 6/6 = 100% on real user requests vs baseline vib patch 0/6.
  • ๐Ÿ“‹ BACKUPS file history + DB Viewer rows pagination โ€” โ† prev / X / Y page ยท Mโ€“N / TOTAL / next โ†’ footer in both lists. Earlier entries are reachable again once the list grows beyond a single page. Search reset to page 1, selected entry auto-jumps to its page.
  • ๐Ÿงน Explain card --write-report / --json options removed โ€” flags removed from the GUI Explain card (CLI still supports them; other commands unaffected).
  • ๐Ÿ“š Dogfooding evidence: vib patch "GUI Explain card์—์„œ --write-report --json ์ œ๊ฑฐ" lands on the wrong file (vib_docs_build_cmd.py, JSON keyword trap) while a host LLM with the new tools targets commandData.ts instantly โ€” see PR #5 description.

v2.2.9 โ€” Patch fix for the v2.2.8 scroll-to-top button:

  • ๐Ÿ”ง Scroll-to-top now detects the real scroll container โ€” v2.2.8 listened to window.scrollY, but the brutalism layout puts scrolling on .page-content (inner flex child), so the button never appeared on macOS or Windows. v2.2.9 adds a capture-phase document scroll listener and reads .page-content.scrollTop directly. Clicks also scroll the inner container instead of window.

v2.2.8 โ€” Two GUI UX fixes + scroll-to-top button:

  • ๐Ÿ”ง Recovery panel โ€” per-candidate AI explanation visible โ€” the LLM's candidate-specific reason field now renders below the rule-based safety details, so the three recommendations no longer share an identical "๊ทผ๊ฑฐ" line. Rule-based bullets were also softened (e.g. "์ปค๋ฐ‹ ์งํ›„ ์ €์žฅ" โ†’ "์ฝ”๋“œ ์ €์žฅ ์งํ›„ ๋งŒ๋“  ๋ฐฑ์—…").
  • ๐Ÿ”ง CANVAS / RAW HTML viewer โ€” content-aware iframe height โ€” both CanvasViewPane and RawHtmlCanvasPane switched from a heuristic-only fixed height to onLoad content measurement (sandbox keeps scripts/forms disabled, only allow-same-origin added). A minHeight: calc(100vh - 200px) ensures the iframe also fills the app viewport for short documents. No more internal scrollbars; long content scrolls with the page like the left sidebar.
  • โฌ†๏ธ Scroll-to-top floating button โ€” a bottom-right floating button (visible after scrolling past 300px) smooth-scrolls to top on click. Available on every page.

v2.2.7 โ€” Recovery recommendation latency cut by ~46%:

  • ๐Ÿš€ Faster Recovery panel โ€” first-call wall for "๋ณต๊ตฌ ํ›„๋ณด ์ถ”์ฒœ ๋ณด๊ธฐ" (Gemini AI recommendation) drops from ~25s to ~13.6s. The LLM prompt was bloated with full commit body text (49% of a 28 KB prompt); now only the subject line (200-char cap) is sent. Recommendation quality is preserved since the LLM uses metadata (source, created_at, evidence_score, commit_boundary), not the verbose commit body.
  • ๐Ÿ“ฆ score_path.rs dormant library โ€” meaningful_overlap Rust port + 5 parity tests + ipc variant land as a dormant library. The score_path-wide track was retracted (ยง9) after skip-rate measurements showed leaf-port batch ROI is ~0, but the artifact is preserved for future use and Python alias drift detection.
  • โœ… Measurement-driven lessons (stub-patch wall diff > cProfile cumtime, skip-rate trap, apples-to-apples harness) drove this release โ€” see docs/superpowers/plans/2026-05-13-*-plan.md ยง9 sections.

v2.2.6 โ€” GUI memorySummary acceleration + tokenizer Rust groundwork:

  • ๐Ÿš€ Phase 3 PoC consumer #13 โ€” SessionMemoryCard mount now uses in-process Rust (callEngineDirect({command:"memory_summary_read"})) instead of a Python sidecar call, removing ~80 ms of mount-time latency. Audit logging parity is fully preserved.
  • ๐Ÿ“ฆ tokenizer Rust leaf port โ€” vibelign-core/src/tokenizer.rs ports the 6 Korean tokenizer leaf functions from patch_suggester.py as a dormant library, backed by tests/fixtures/tokenizer_goldens/ (102 case ร— 6 function = 612 byte-equal parity records).
  • โšก _normalize_korean_token pre-sort โ€” moves the per-call sorted() to a module-level constant. Direct 1M-iter benchmark shows 27% speedup; recover preview wall is unchanged (caller-side set processing dominates).
  • โœ… Cross-platform pre-flight โ€” Windows GNU cross-compile passes for both vibelign-core and vibelign-gui/src-tauri.

v2.2.5 โ€” Desktop release lockfile fix:

  • ๐Ÿ“ฆ npm lockfile repair โ€” regenerated the GUI package lock so npm ci installs the real json5@2.2.3 dependency instead of a nonexistent json5-2.2.4.tgz tarball.
  • โœ… Release build retry โ€” v2.2.5 supersedes the failed v2.2.4 desktop GUI release attempt.

v2.2.4 โ€” Desktop release compatibility fix:

  • ๐Ÿ› ๏ธ Backup bridge compatibility โ€” restored the legacy backupCreate export so existing GUI screens continue to build after the domain-module bridge refactor.
  • โœ… Release build retry โ€” v2.2.4 supersedes the failed v2.2.3 desktop GUI release attempt while keeping the same bridge modularization work.

v2.2.3 โ€” GUI bridge modularization + cleaner dev logs:

  • ๐Ÿงฉ Modular GUI vib bridge โ€” split the large src/lib/vib.ts command bridge into focused domain modules while preserving the existing src/lib/vib import path.
  • ๐Ÿ›ก๏ธ Contract-preserving refactor โ€” kept Tauri command strings, payload shapes, Windows onboarding/env behavior, and backup cache singleton behavior stable.
  • ๐Ÿงน Cleaner Tauri dev output โ€” removed the Rust warnings shown during npm run tauri dev.

v2.2.2 โ€” DocsViewer HTML Canvas + Windows ์•ˆ์ •ํ™”:

  • ๐Ÿงญ Document Control Map Canvas โ€” ์›๋ฌธ ์ˆœ์„œ Outline, Flow, Decisions, Actions, Risks, Glossary ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  bullet ์ค‘์‹ฌ ์„น์…˜ preview ๋ˆ„๋ฝ์„ body_preview ๋กœ ๋ณด๊ฐ•.
  • ๐Ÿงพ Raw HTML artifact mode โ€” ์„ ํƒ ๋ฌธ์„œ๋ฅผ sandboxed iframe ์˜ ์ฝ๊ธฐ ์‰ฌ์šด article-style HTML ๋กœ ๋ Œ๋”๋ง.
  • ๐ŸชŸ Split tab UX โ€” ์ฐฝ ํญ๊ณผ ์ƒ๊ด€์—†์ด Split ํƒญ์„ ํ•ญ์ƒ ํ‘œ์‹œํ•˜๊ณ , ์ข์€ ์ฐฝ์—์„œ๋Š” ๋‚ด๋ถ€ ๋ ˆ์ด์•„์›ƒ๋งŒ 1์—ด๋กœ ๋ฐ˜์‘.
  • โœจ Active tab highlight โ€” Source/Easy/Canvas/Raw HTML/Split ์ค‘ ํ˜„์žฌ ํƒญ์„ ๊ฒ€์€ ๋ฐฐ๊ฒฝ + ์˜ค๋ Œ์ง€ ๊ทธ๋ฆผ์ž๋กœ ๊ฐ•์กฐ.
  • ๐Ÿ› ๏ธ Windows path fix โ€” C:\Repo vs c:\repo\... ๊ฐ™์€ ๋Œ€์†Œ๋ฌธ์ž ์ฐจ์ด์—๋„ ์ถ”๊ฐ€ ๋ฌธ์„œ ์†Œ์Šค ํด๋” ์„ ํƒ์ด ์ •์ƒ ๋™์ž‘.

v2.2.0 โ€” GUI direct bridge + ํ†ตํ•ฉ ์—๋Ÿฌ ๋กœ๊ทธ + ์ž๋™ ๋ฐฑ์—… ๊ฐ€์‹œ์„ฑ:

  • ๐ŸŒ‰ Tauri โ†” vibelign-core direct bridge โ€” GUI ๊ฐ€ Python vib subprocess ์—†์ด in-process Rust ์—”์ง„ ์ง์ ‘ ํ˜ธ์ถœ. 6๊ฐœ GUI consumer ์˜ trivial ๋ช…๋ น wall time ~80ms โ†’ <5ms.
  • ๐Ÿ› GUI ํ†ตํ•ฉ ์—๋Ÿฌ ๋กœ๊ทธ ๋ทฐ โ€” CLI/GUI ์—๋Ÿฌ๋ฅผ ํ•œ ํƒญ์— ํ†ตํ•ฉ, GitHub ์ด์Šˆ๋กœ ๋‹จ์ผ/๋‹ค์ค‘ ๋ณด๊ณ , ์ˆ˜์ • ์™„๋ฃŒ๋œ ์—๋Ÿฌ ์ฆ‰์‹œ ์ •๋ฆฌ ๋ฒ„ํŠผ.
  • ๐Ÿ›Ÿ ์ž๋™ ๋ฐฑ์—… ์‹คํŒจ ๊ฐ€์‹œํ™” โ€” post-commit hook ์ด ๋” ์ด์ƒ silent skip ์•ˆ ํ•จ, ํ†ตํ•ฉ ์—๋Ÿฌ ๋กœ๊ทธ์— ์ž๋™ ๊ธฐ๋ก + git terminal ์— stderr ๋…ธ์ถœ.
  • ๐Ÿ” Rust secret_scan parity โ€” VIBELIGN_SECRET_SCAN_RUST=1 ์˜ตํŠธ์ธ ์‹œ Rust ๊ตฌํ˜„ ์‚ฌ์šฉ (10๊ฐœ ๊ณจ๋“  fixture ๋กœ Python ๊ณผ 1:1 parity ๋ณด์žฅ).
  • ๐Ÿ› ๏ธ Multiple silent regression fixes โ€” vib memory show race, vib doctor | head BrokenPipeError, integrity manifest auto-regen, GUI listener cleanup, ํ™ˆ ์นด๋“œ ๊ทธ๋ฆฌ๋“œ 1fr 1fr ๋ถˆ๊ท ํ˜• ์ˆ˜์ •.

Rust/SQLite Checkpoint Engine (v2.1 series):

  • vib checkpoint, vib history, and vib undo use the Rust/SQLite checkpoint engine by default, with visible Python fallback if the bundled engine cannot run.
  • Existing JSON checkpoints in .vibelign/checkpoints/ are preserved on disk but are not automatically imported or merged into the new SQLite-backed history. Back up .vibelign/checkpoints/ before upgrading if you still need old snapshots.

v2.0.0 โ€” Desktop GUI + MCP/Patch Modularization + AI Opt-In:

  • ๐Ÿ–ฅ๏ธ VibeLign GUI (macOS / Windows) โ€” Tauri desktop app
    • Doctor page: one-click diagnosis + auto-apply
    • Anchor card: anchor insertion + intent/aliases regeneration (code-based / AI-based, --force overwrites prior AI results)
    • DocsViewer: per-document AI summarization
    • Settings: API key management, global AI opt-in toggle
  • ๐Ÿ”Œ MCP server refactored โ€” vibelign/mcp/ with dispatch/handlers/tool_specs split
  • ๐Ÿงฉ Patch module split โ€” vibelign/patch/ (builder ยท handoff ยท preview ยท targeting ยท โ€ฆ)
  • ๐Ÿค– AI opt-in โ€” consent UI removed, single global toggle in Settings; Anthropic / OpenAI / Gemini auto-selected
  • โšก onedir runtime โ€” PyInstaller onefile โ†’ onedir removes GUI cold-start (1โ€“3 s โ†’ instant)
  • ๐Ÿท๏ธ Anchor _source field โ€” anchor_meta.json now tracks code / ai / manual / ai_failed so AI/manual results are protected from code-based regeneration (use --force to override)
  • โš ๏ธ Breaking: vibelign.vib_cli โ†’ vibelign.cli.vib_cli; vibelign.mcp_server โ†’ vibelign.mcp.mcp_server
  • See CHANGELOG.md ยท MIGRATION_v1_to_v2.md

v1.6.0 โ€” MCP Server + AI Development Rules System:

  • vib mcp โ€” MCP (Model Context Protocol) server for Claude Desktop integration
  • vib start โ€” Auto-register VibeLign MCP for Claude Code and Cursor without overwriting existing Cursor MCP servers
  • vib rules โ€” View all AI development rules directly in CLI
  • vib manual rules โ€” Detailed rules manual
  • Anchor intent system โ€” Store intent information in anchors
  • Korean tokenizer โ€” Accurately interpret patch requests in Korean
  • AI_DEV_SYSTEM โ€” Added maintainability/function design rules (Section 6-1, 14)
  • vib scan bug fix โ€” Fixed missing set_intent attribute

v1.5.32 โ€” Checkpoint & Undo UX Overhaul + AI Config File Protection:

  • vib checkpoint โ€” Message prompt support
  • vib undo โ€” Number selection + cancel option [0]
  • vib history โ€” Second-precision timestamps
  • vib start โ€” Beginner onboarding + auto first checkpoint
  • vib export โ€” AGENTS.md, CLAUDE.md, OPENCODE.md, .cursorrules protection

v1.5.0 โ€” Multi-Tool AI Config Export:

  • vib export claude โ€” Generate CLAUDE.md for Claude Code
  • vib export cursor โ€” Generate .cursorrules for Cursor
  • vib export opencode โ€” Generate OPENCODE.md for OpenCode
  • vib export antigravity โ€” Generate AGENTS.md for Codex/agents
  • Added VibeLign markers to exported files (prevent overwriting)

v1.1.0 โ€” Core Features for Beginners:

  • vib init โ€” Initialize/reset VibeLign
  • vib start โ€” First-time user guide
  • vib checkpoint / vib undo โ€” Save & restore without Git
  • vib protect โ€” Lock important files
  • vib ask โ€” Generate AI explanation prompts
  • vib history โ€” View checkpoint history

License

MIT

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibelign-2.2.10.tar.gz (652.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibelign-2.2.10-py3-none-any.whl (539.5 kB view details)

Uploaded Python 3

File details

Details for the file vibelign-2.2.10.tar.gz.

File metadata

  • Download URL: vibelign-2.2.10.tar.gz
  • Upload date:
  • Size: 652.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vibelign-2.2.10.tar.gz
Algorithm Hash digest
SHA256 99e6509701e56853d9f94f33cb6259aba0cf77acdf280e72800aff5722e35e40
MD5 602f54e192a6f8a244d5f63129b33d62
BLAKE2b-256 3749390325a0f5b3e0a5e052970414d4677dff4198ded61cff6dd748ce62f165

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibelign-2.2.10.tar.gz:

Publisher: publish.yml on yesonsys03-web/VibeLign

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vibelign-2.2.10-py3-none-any.whl.

File metadata

  • Download URL: vibelign-2.2.10-py3-none-any.whl
  • Upload date:
  • Size: 539.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vibelign-2.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 78fdee3c29759ccd07e282277f34ae3a795288ecd7e00dfde0682e3123b71242
MD5 a989fdc8b6c0eb34844238cc8baaa672
BLAKE2b-256 5e4559570ab9e423ba2c336149afb4c8201a0cef5d44f8ef5bdec549cce6caa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for vibelign-2.2.10-py3-none-any.whl:

Publisher: publish.yml on yesonsys03-web/VibeLign

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page