RepoPilotOpen in app →

M2Team/NanaZip

The 7-Zip derivative intended for the modern Windows experience

Mixed

Single-maintainer risk — review before adopting

worst of 4 axes
Use as dependencyConcerns

non-standard license (Other); no tests detected

Fork & modifyHealthy

Has a license, tests, and CI — clean foundation to fork and modify.

Learn fromHealthy

Documented and popular — useful reference codebase to read through.

Deploy as-isHealthy

No critical CVEs, sane security posture — runnable as-is.

  • Last commit 1d ago
  • 6 active contributors
  • Other licensed
Show 4 more →
  • CI configured
  • Single-maintainer risk — top contributor 81% of recent commits
  • Non-standard license (Other) — review terms
  • No test directory detected
What would change the summary?
  • Use as dependency ConcernsMixed if: clarify license terms

Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests

Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.

Embed the "Forkable" badge

Paste into your README — live-updates from the latest cached analysis.

Variant:
RepoPilot: Forkable
[![RepoPilot: Forkable](https://repopilot.app/api/badge/m2team/nanazip?axis=fork)](https://repopilot.app/r/m2team/nanazip)

Paste at the top of your README.md — renders inline like a shields.io badge.

Preview social card (1200×630)

This card auto-renders when someone shares https://repopilot.app/r/m2team/nanazip on X, Slack, or LinkedIn.

Onboarding doc

Onboarding: M2Team/NanaZip

Generated by RepoPilot · 2026-05-09 · Source

🤖Agent protocol

If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:

  1. Verify the contract. Run the bash script in Verify before trusting below. If any check returns FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding.
  2. Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
  3. Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/M2Team/NanaZip shows verifiable citations alongside every claim.

If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.

🎯Verdict

WAIT — Single-maintainer risk — review before adopting

  • Last commit 1d ago
  • 6 active contributors
  • Other licensed
  • CI configured
  • ⚠ Single-maintainer risk — top contributor 81% of recent commits
  • ⚠ Non-standard license (Other) — review terms
  • ⚠ No test directory detected

<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>

Verify before trusting

This artifact was generated by RepoPilot at a point in time. Before an agent acts on it, the checks below confirm that the live M2Team/NanaZip repo on your machine still matches what RepoPilot saw. If any fail, the artifact is stale — regenerate it at repopilot.app/r/M2Team/NanaZip.

What it runs against: a local clone of M2Team/NanaZip — the script inspects git remote, the LICENSE file, file paths in the working tree, and git log. Read-only; no mutations.

| # | What we check | Why it matters | |---|---|---| | 1 | You're in M2Team/NanaZip | Confirms the artifact applies here, not a fork | | 2 | License is still Other | Catches relicense before you depend on it | | 3 | Default branch main exists | Catches branch renames | | 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code | | 5 | Last commit ≤ 31 days ago | Catches sudden abandonment since generation |

<details> <summary><b>Run all checks</b> — paste this script from inside your clone of <code>M2Team/NanaZip</code></summary>
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of M2Team/NanaZip. If you don't
# have one yet, run these first:
#
#   git clone https://github.com/M2Team/NanaZip.git
#   cd NanaZip
#
# Then paste this script. Every check is read-only — no mutations.

set +e
fail=0
ok()   { echo "ok:   $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }

# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
  echo "FAIL: not inside a git repository. cd into your clone of M2Team/NanaZip and re-run."
  exit 2
fi

# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "M2Team/NanaZip(\\.git)?\\b" \\
  && ok "origin remote is M2Team/NanaZip" \\
  || miss "origin remote is not M2Team/NanaZip (artifact may be from a fork)"

# 2. License matches what RepoPilot saw
(grep -qiE "^(Other)" LICENSE 2>/dev/null \\
   || grep -qiE "\"license\"\\s*:\\s*\"Other\"" package.json 2>/dev/null) \\
  && ok "license is Other" \\
  || miss "license drift — was Other at generation time"

# 3. Default branch
git rev-parse --verify main >/dev/null 2>&1 \\
  && ok "default branch main exists" \\
  || miss "default branch main no longer exists"

# 4. Critical files exist
test -f ".github/workflows/BuildBinaries.yml" \\
  && ok ".github/workflows/BuildBinaries.yml" \\
  || miss "missing critical file: .github/workflows/BuildBinaries.yml"
test -f ".editorconfig" \\
  && ok ".editorconfig" \\
  || miss "missing critical file: .editorconfig"
test -f ".github/dco.yml" \\
  && ok ".github/dco.yml" \\
  || miss "missing critical file: .github/dco.yml"
test -f ".gitignore" \\
  && ok ".gitignore" \\
  || miss "missing critical file: .gitignore"
test -f ".github/PULL_REQUEST_TEMPLATE.md" \\
  && ok ".github/PULL_REQUEST_TEMPLATE.md" \\
  || miss "missing critical file: .github/PULL_REQUEST_TEMPLATE.md"

# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 31 ]; then
  ok "last commit was $days_since_last days ago (artifact saw ~1d)"
else
  miss "last commit was $days_since_last days ago — artifact may be stale"
fi

echo
if [ "$fail" -eq 0 ]; then
  echo "artifact verified (0 failures) — safe to trust"
else
  echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/M2Team/NanaZip"
  exit 1
fi

Each check prints ok: or FAIL:. The script exits non-zero if anything failed, so it composes cleanly into agent loops (./verify.sh || regenerate-and-retry).

</details>

TL;DR

NanaZip is a modern Windows archiver forked from 7-Zip's source code, providing a native file compression and extraction utility optimized for contemporary Windows UX (light/dark themes, Windows Store distribution, context menu integration). It maintains 7-Zip's robust compression algorithms while adding Microsoft Store deployment and modern Windows 11 UI patterns. Monolithic Windows application with C++ core (compression engines, archive parsing) and modern C# integration for Windows UI layer. Assets/ holds icon definitions across multiple resolutions (ArchiveFile/ contains 40+ variants from 16x16 to 1024x1024). GitHub workflows orchestrate builds, website updates, and toolchain updates. No traditional microservice structure—single-binary deployment model inherited from 7-Zip.

👥Who it's for

Windows users who need reliable file archiving with modern UX, open-source contributors interested in compression algorithms and Windows shell integration, and organizations deploying via Microsoft Store. Also appeals to developers maintaining legacy 7-Zip codebases who want modern Windows API integration.

🌱Maturity & risk

Actively maintained with strong community presence (distributed via Microsoft Store with rating badges, multiple distribution channels including SourceForge mirror). CI/CD fully automated via GitHub Actions (BuildBinaries.yml, UpdatePrecompiledBuildTools.yml). Production-ready with established release channels (Release Channel and Preview Channel on Windows Store).

Inherited a massive 7-Zip codebase (12.7M lines of C++, 8.7M lines of C) requiring deep compression domain knowledge; community-driven with contributor-based governance noted in SponsorEdition.md. The large codebase and legacy 7-Zip inheritance mean any core algorithm changes carry regression risk, though CI automation mitigates this. Sponsor model suggests reliance on volunteer maintainers.

Active areas of work

Active release cadence on Windows Store (both Release and Preview channels maintained separately). GitHub Actions workflows regularly execute BuildBinaries.yml suggesting continuous build/test integration. UpdatePrecompiledBuildTools.yml indicates active maintenance of build dependencies. Issues processed via DCO (Contributor License Agreement) as seen in .github/dco.yml, showing governance emphasis.

🚀Get running

Clone the repository: git clone https://github.com/M2Team/NanaZip.git && cd NanaZip. Check BuildBinaries.yml in .github/workflows/ for exact build steps (requires Visual Studio 2022+ and Windows SDK). No npm/nuget install visible in top-level—build likely driven by .sln project files (inferred from C# presence but not listed). Run: examine .github/workflows/BuildBinaries.yml for OS-specific build matrix commands.

Daily commands: Not a typical dev server project. To build locally: (1) Install Visual Studio 2022 with C++ Desktop workload and Windows SDK. (2) Open root .sln file in Visual Studio or use msbuild from command line. (3) Build steps visible in .github/workflows/BuildBinaries.yml—examine matrix for Windows SDK versions and toolchain paths. Output: .exe/.msix binaries for Windows Store or standalone distribution.

🗺️Map of the codebase

  • .github/workflows/BuildBinaries.yml — Defines the CI/CD pipeline for compiling NanaZip binaries; essential for understanding build infrastructure and release processes.
  • .editorconfig — Enforces consistent code style across the C++ and resource files; every contributor must follow these formatting rules.
  • .github/dco.yml — Configures Developer Certificate of Origin requirements; required reading for understanding contribution workflow and legal compliance.
  • .gitignore — Specifies which build artifacts and temporary files to exclude; crucial for clean repository management and avoiding accidental commits.
  • .github/PULL_REQUEST_TEMPLATE.md — Standard PR template ensuring consistent information submission; guides contributors on expected change documentation.
  • .github/ISSUE_TEMPLATE/config.yml — Configures issue templates for bug reports and feature requests; establishes the triage and feedback workflow.

🧩Components & responsibilities

  • 7-Zip Codec Engine (C++, compression algorithms (LZMA, DEFLATE, etc.)) — Core compression/decompression library handling all format logic and codec operations
    • Failure mode: Corrupted archives; failed extraction; unsupported formats; resource exhaustion during large file processing
  • UI Layer (WinUI/XAML) (XAML, WinUI, Windows Runtime (WinRT)) — Modern Windows interface for browsing, extracting, and creating archives; system theming support
    • Failure mode: Unresponsive UI during long operations; memory leaks in UI controls; rendering artifacts
  • Shell Integration (Context Menus) (Windows Registry, COM interfaces, Shell extensions) — Windows Explorer context menu handlers for compress/extract operations
    • Failure mode: Context menu not appearing; crashes in Explorer; permission issues; registry corruption
  • CI/CD Pipeline (GitHub Actions, MSBuild, code signing, .appx utilities) — Automated compilation, testing, packaging, and deployment to Microsoft Store
    • Failure mode: Build failures; package validation errors; Store submission rejection; signing certificate expiration
  • Asset Management (SVG, PNG, ICO formats; image scaling) — Multi-resolution icons and branding for file types, application, and SFX executable
    • Failure mode: Blurry icons at high DPI; missing resolutions; incorrect aspect ratios; Store badge rejections

🔀Data flow

  • User (File Explorer)NanaZip Shell Extension — User right-clicks archive file; context menu handler is invoked
  • Shell ExtensionNanaZip Main Application — Shell extension spawns main process with archive path and operation (open/extract/compress)
  • Main Application7-Zip Codec Engine — Application loads archive, requests decompression of file list and contents
  • 7-Zip Codec EngineDisk (archive file) — Codec reads raw archive data from disk, parses headers, decompresses to memory or temp directory

🛠️How to make changes

Add a new archive format handler

  1. Create new format codec in the 7-Zip derived codec library (expected in NanaZip/Codecs or similar) (Source code location not fully visible in file list; check main source directory)
  2. Register format in archive recognition logic (Configuration file in source tree (check NanaZip source root))
  3. Add corresponding icon for file type in Assets/OriginalAssets (Assets/OriginalAssets/NanaZip/[FormatName]/[FormatName].svg)
  4. Update CI/CD pipeline to include new format in test matrix (.github/workflows/BuildBinaries.yml)

Update application branding and icons

  1. Create SVG source design in OriginalAssets subdirectory (Assets/OriginalAssets/NanaZip/[ComponentName]/[ComponentName].svg)
  2. Generate multi-resolution PNG exports (16px–1024px) (Assets/OriginalAssets/NanaZip/[ComponentName]/[ComponentName]_*.png)
  3. Export ICO format for application icon (Assets/NanaZip.ico or Assets/NanaZipSfx.ico)
  4. Update README badge and documentation (README.md (or similar documentation file in root))

Configure a new release channel

  1. Modify BuildBinaries workflow to generate additional platform binaries (.github/workflows/BuildBinaries.yml)
  2. Add channel-specific configuration (e.g., Preview vs Release) (.editorconfig or build configuration file)
  3. Update website deployment workflow if channel has separate documentation (.github/workflows/UpdateWebsite.yml)

🔧Why these technologies

  • 7-Zip derivative codebase — Leverages battle-tested compression engine and format support; reduces implementation burden for archive handling.
  • C++ (Windows native) — Enables tight system integration with Windows APIs, efficient archive processing, and modern UX via WinUI.
  • GitHub Actions CI/CD — Provides free, integrated build automation; automates cross-platform compilation and Microsoft Store publishing.
  • MSBuild — Standard Windows/Visual Studio build system; integrates seamlessly with C++ project structure and resource compilation.
  • Microsoft Store — Primary distribution channel for modern Windows apps; provides automatic updates, security scanning, and reach to Windows users.

⚖️Trade-offs already made

  • Windows-only (no cross-platform support)

    • Why: Tighter Windows integration, leverage of platform-specific APIs (e.g., WinUI, context menus), smaller codebase.
    • Consequence: Cannot serve macOS or Linux users; limits addressable market but simplifies development and testing.
  • Derive from 7-Zip rather than rewrite

    • Why: Reuses proven compression logic, format support, and bug fixes; faster time-to-market.
    • Consequence: Must track upstream 7-Zip changes; tighter coupling to 7-Zip codebase; license compatibility required.
  • Distribute via Microsoft Store as primary channel

    • Why: Automatic updates, discoverability, built-in security validation, integrated Windows experience.
    • Consequence: Subject to Store review policies; requires .appx packaging; some users prefer portable executables.
  • Single main branch with Release/Preview Store channels

    • Why: Simplified branching strategy; single source of truth; two release cadences without forking.
    • Consequence: Preview release requires feature flagging or version divergence; potential for confusion if channels desync.

🚫Non-goals (don't propose these)

  • Does not support Linux or macOS
  • Does not provide command-line compression API (GUI-only application)
  • Does not implement its own compression algorithms (uses 7-Zip codecs)
  • Does not support real-time streaming compression (file-based only)

🪤Traps & gotchas

No top-level package.json or Makefile visible—build system is entirely MSBuild/.sln based (Visual Studio project files not listed but presumed in root). Large inherited codebase—7-Zip algorithms are complex; modifying compression logic without understanding the original 7-Zip design will break functionality. Windows-only development—no Linux/macOS build paths implied; requires Windows + Visual Studio to compile locally. Icon asset sprawl—Assets/OriginalAssets/ contains 40+ variants of each icon; changes require regenerating all sizes (likely tooling not documented in visible files). DCO enforcement—all commits must have Signed-off-by trailers (see .github/dco.yml); missing this will block merges.

🏗️Architecture

💡Concepts to learn

  • LZMA Compression — NanaZip inherits 7-Zip's LZMA algorithm—understanding this compression method is critical for modifying or debugging archive operations and file size efficiency.
  • Windows Shell Integration (IContextMenu/IShellExtension) — NanaZip's context menu (shown in ContextMenu.png) relies on COM-based shell extension interfaces—necessary knowledge for modifying right-click archive operations.
  • WPF (Windows Presentation Foundation) Data Binding — The C# UI layer uses WPF for light/dark theme switching and responsive UI—required for modifying UI elements or adding new features to the archive manager GUI.
  • MSIX (Microsoft Store Application Package) — NanaZip distributes via Windows Store using MSIX format—understanding packaging, versioning, and Store submission is essential for release workflows.
  • Archive Format Parsing (ZIP, 7z, RAR headers) — Core compression logic must correctly parse and write various archive headers (magic bytes, compression flags, metadata)—any corruption bug requires deep format knowledge.
  • GitHub Actions Matrix Builds — BuildBinaries.yml uses matrix strategy to build across multiple Windows SDK/compiler versions—understanding matrix syntax is critical for extending CI/CD.
  • Contributor License Agreement (DCO) — All commits must carry Signed-off-by headers enforced by .github/dco.yml—non-compliance blocks merges and is a unique governance pattern in this repo.
  • 7-Zip/7-Zip — The upstream source fork—NanaZip branches from 7-Zip's compression algorithms and core archive handling logic.
  • M2Team/M2-Team-Blog — M2Team's official documentation and announcements repo, likely contains architectural decisions and historical context for NanaZip.
  • peazip/PeaZip — Alternative cross-platform archiver with modern UI; useful reference for modern compression UX patterns without Windows-only constraints.
  • WinMerge/winmerge — Windows native tool using similar modern UX patterns and MSBuild/C++ architecture—reference for Windows Shell integration best practices.
  • microsoft/vcpkg — Dependency manager for C++ projects; relevant for understanding how NanaZip's compression libraries (zlib, LZMA, etc.) might be versioned in a larger ecosystem.

🪄PR ideas

To work on one of these in Claude Code or Cursor, paste: Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.

Create automated asset generation workflow for icon variants

The Assets/OriginalAssets directory contains SVG source files and manually generated PNG variants at many resolutions (16px to 1024px). This is error-prone and tedious to maintain. A GitHub Actions workflow could automatically generate all PNG variants from SVG sources on commit, ensuring consistency across all icon sizes and reducing manual work when assets change.

  • [ ] Create .github/workflows/GenerateAssets.yml that triggers on changes to Assets/OriginalAssets/*.svg
  • [ ] Configure the workflow to use a tool like ImageMagick or a Node.js image library to convert SVG to all required PNG resolutions (16, 20, 24, 30, 32, 36, 40, 48, 60, 64, 72, 80, 90, 96, 108, 120, 128, 144, 160, 192, 216, 256, 288, 320, 384, 512, 768, 1024)
  • [ ] Have the workflow commit generated PNGs back to Assets/OriginalAssets/ directories or validate they match expected output
  • [ ] Document the process in a new Assets/README.md with asset contribution guidelines

Add schema validation for GitHub issue/PR templates

The .github/ISSUE_TEMPLATE directory contains YAML files (bug_report.yml, feature_request.yml, config.yml) but lacks validation. New contributors may inadvertently break template syntax. Adding a GitHub Actions workflow to validate these YAML files against the GitHub issue forms schema would catch errors early and ensure consistent template quality.

  • [ ] Create .github/workflows/ValidateIssueTemplates.yml that runs on PRs modifying .github/ISSUE_TEMPLATE/
  • [ ] Use a YAML linter or GitHub's issue forms schema validator to check syntax of bug_report.yml and feature_request.yml
  • [ ] Ensure all required fields (id, name, description, attributes, validations) are present and correctly formatted
  • [ ] Add job status badge reference to README.md

Add pre-commit hook configuration for .editorconfig compliance

The repo has a .editorconfig file but no pre-commit configuration to enforce it locally before commits. This causes inconsistent formatting in PRs and review churn. Adding a .pre-commit-config.yaml would help contributors catch style issues before pushing, improving PR quality and reducing maintainer review burden.

  • [ ] Create .pre-commit-config.yaml with hooks for editorconfig-checker to validate file formatting against .editorconfig rules
  • [ ] Add EditorConfig-specific hooks for trailing whitespace, final newline, and indent consistency
  • [ ] Create CONTRIBUTING.md with setup instructions: 'pip install pre-commit && pre-commit install'
  • [ ] Document in README.md's contribution section the requirement to run pre-commit hooks before submitting PRs

🌿Good first issues

  • Add dark theme icon variants for ContrastBlack assets (Assets/OriginalAssets/NanaZip/ContrastBlack/ only has SVG + some PNG sizes)—select missing sizes and regenerate using a tool like ImageMagick to complete the set.
  • Improve issue template clarity: ISSUE_TEMPLATE/bug_report.yml and feature_request.yml could add examples of good bug reproduction steps and feature scope criteria—edit these .yml files to add help text.
  • Document the build process: create a BUILDING.md file that walks through the exact steps from .github/workflows/BuildBinaries.yml, translating GitHub Actions matrix syntax into step-by-step instructions for developers unfamiliar with MSBuild.

Top contributors

Click to expand

📝Recent commits

Click to expand
  • eb9ae17 — Update the release notes for the next work-in-progress 6.5 Preview. (MouriNaruto)
  • e39d2db — Add the release notes for 6.0 Update 7. (MouriNaruto)
  • ddec78f — Fix parsing issues for the UFS/UFS2 file system image readonly support. (MouriNaruto)
  • 89c7030 — Adapt to newest Mile.Mobility. (MouriNaruto)
  • 1d8e7e2 — Update Mile.Mobility to 1.1.544. (MouriNaruto)
  • de9f6d2 — Update the release notes for the next work-in-progress 6.5 Preview. (MouriNaruto)
  • 8ebbf33 — Add the release notes for 6.0 Update 6. (MouriNaruto)
  • dd6a134 — [NanaZip.Universal] Update 7-Zip to 26.01. (MouriNaruto)
  • 517a005 — [NanaZip.Core] Update 7-Zip to 26.01. (MouriNaruto)
  • 796c35b — Update the release notes for the next work-in-progress 6.5 Preview. (MouriNaruto)

🔒Security observations

NanaZip demonstrates a reasonable security baseline with CI/CD workflows and DCO enforcement in place. However, there are opportunities for improvement: (1) establish a formal security reporting policy via SECURITY.md, (2) implement stricter code review requirements through CODEOWNERS, (3) add cryptographic verification for binary releases, and (4) consider automated dependency scanning. The project would benefit from these additional security controls given its role as an archive manager handling user files. No critical vulnerabilities were identified in the visible file structure, but this analysis is limited to configuration files and structure only—actual source code review would be necessary for a comprehensive security assessment.

  • Medium · Missing CODEOWNERS File — .github/CODEOWNERS (missing). The repository lacks a CODEOWNERS file, which could lead to unauthorized changes being merged without proper review from security-conscious maintainers. This is particularly important for a security-sensitive project like an archive manager. Fix: Create a CODEOWNERS file in the .github directory to enforce code review requirements for critical files and security-sensitive components.
  • Medium · Incomplete Security Policy — SECURITY.md (missing). No visible SECURITY.md file found in the repository root. This makes it difficult for security researchers to report vulnerabilities responsibly. Fix: Create a SECURITY.md file in the repository root documenting responsible disclosure practices and how to report security vulnerabilities.
  • Low · Missing License Validation in DCO Configuration — .github/dco.yml. While a DCO (Developer Certificate of Origin) configuration exists, there is no evidence of additional license scanning or compliance checking for dependencies. Fix: Consider implementing automated dependency license scanning using tools like FOSSA, Black Duck, or GitHub's dependency scanning features.
  • Low · Lack of Build Artifact Verification — .github/workflows/BuildBinaries.yml. The GitHub Actions workflow for building binaries does not show evidence of signed releases or artifact verification mechanisms. Fix: Implement code signing and checksum verification for binary releases to prevent tampering. Consider using GitHub's attestations feature.
  • Low · No Visible Dependency Lock File — Root directory. No package-lock.json, yarn.lock, or similar lock files visible in the provided file structure, which could lead to non-deterministic builds. Fix: If the project uses any package managers, ensure lock files are committed to version control for reproducible builds.

LLM-derived; treat as a starting point, not a security audit.


Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.

Mixed signals · M2Team/NanaZip — RepoPilot