Version of netviel that works
Find a file
2025-10-15 17:20:58 -07:00
.github/workflows attempt supporting both gitea/github dependency install 2024-07-16 11:02:15 -07:00
mail add attachment functionality 2025-10-15 14:12:13 -07:00
src return message if no text available 2025-10-15 16:44:58 -07:00
static help overlay 2025-10-15 17:07:05 -07:00
.envrc committing with one failing test, because now we need to go read files 2025-04-19 12:55:02 -07:00
.gitignore committing with one failing test, because now we need to go read files 2025-04-19 12:55:02 -07:00
.mise.toml upgrade to zig 0.15.2 2025-10-15 12:27:04 -07:00
.pre-commit-config.yaml upgrade to zig 0.15.2 2025-10-15 12:27:04 -07:00
build.zig always link gmime 2025-10-15 17:20:58 -07:00
build.zig.zon add initial backend web routes 2025-10-15 14:50:37 -07:00
flake.lock add nix flake, license, etc 2024-07-16 10:09:39 -07:00
flake.nix add beginning of email parsing (tests failing) 2025-08-15 16:39:01 -07:00
LICENSE add nix flake, license, etc 2024-07-16 10:09:39 -07:00
PLAN.md update README 2025-10-15 15:28:47 -07:00
README.md update README 2025-10-15 15:28:47 -07:00

Zetviel

A web-based email client for notmuch, written in Zig.

As some background, I've had some issues with the very usable netviel. I wanted to address those issues, but also simplify the deployment. And, I like Zig, so I decided this was small enough I'd just re-write the thing to make my own.

Features

  • REST API for notmuch queries
  • Thread and message viewing
  • Attachment handling
  • Security headers for safe browsing
  • Configurable port

Building

If you have notmuch installed (libnotmuch-dev on a debian-based system), zig build is all you need. If you are using nix, you can nix develop, which will install the necessary notmuch header/library, and the build system will detect and use that. Again, zig build will work in that instance, but you must nix develop first.

Usage

# Start server on default port (5000)
zetviel

# Start server on custom port
zetviel --port 8080

# Show help
zetviel --help

# Show version
zetviel --version

Configuration

  • NOTMUCH_PATH environment variable: Path to notmuch database (default: mail)
  • --port: HTTP server port (default: 5000)

API Endpoints

  • GET /api/query/<query> - Search threads using notmuch query syntax
  • GET /api/thread/<thread_id> - Get messages in a thread
  • GET /api/message/<message_id> - Get message details with content
  • GET /api/attachment/<message_id>/<num> - Get attachment metadata

Security

WARNING: Zetviel is intended for local use only. It binds to 127.0.0.1 and should not be exposed to the internet without additional security measures.