Skip to main content

jevgram

jevgram is a small command-line tool that checks if a document is AI-generated. Similar to pangram but a lot cheaper. You need API key from TYPESAFE_API_KEY (super easy, couple of clicks)

Supported inputs

  • Plain text and source-like text files, such as .txt, .md, .tex, and similar files
  • PDF files
  • DOCX files

Minimal example:

$ export TYPESAFE_API_KEY=apikey_...
$ pipx install jevgram
$ jevgram README.md # this document
File: README.md
Type: text
Characters extracted: 1957
Characters sent to JEV: 1957
Model: jev-1.13.0
Prediction: AI
Probability AI: 87.00%
Probability human: 13.00%
Confidence: 74.00%

PDF extraction uses pypdf. DOCX extraction is handled directly from the Word XML contained in the .docx file.

Detailed instructions

Install

With pipx (MacOS, Linux):

pipx install jevgram

With uvx:

uvx jevgram --help

Get a TypeSafe API key

jevgram needs a TypeSafe API key to call JEV.

  1. Open the TypeSafe API keys page:

    https://console.typesafe.ai/settings/keys

    If you are asked to sign in, sign in first. If you do not have TypeSafe access yet, request access at https://typesafe.ai.

  2. Click Create key or New API key.

  3. Copy the key and save it somewhere private.

    Do not put API keys in GitHub, screenshots, shared documents, or chat messages.

  4. Set the key in your terminal:

export TYPESAFE_API_KEY="paste-your-key-here"

To avoid setting the key every time, add the export TYPESAFE_API_KEY=... line to your shell profile, such as ~/.bashrc or ~/.zshrc.

You can also pass a key directly with --api-key, but environment variables are safer/easier.

Usage

jevgram document.txt
jevgram paper.pdf
jevgram manuscript.docx --json

By default, long files are sampled down to 32,000 characters using the beginning, middle, and end of the extracted text. To send the whole extracted document, use:

jevgram document.txt --max-chars 0

To inspect extraction without calling JEV:

jevgram document.pdf --extract-only

To inspect the request body without calling JEV:

jevgram document.txt --dump-request

Output

Human-readable output includes the predicted class, AI probability, human probability, confidence when provided by JEV, and whether the input was truncated. --json produces machine-readable output for scripts.

Cost

This app is open-source/free on my end, but it uses JEV API, which is not free. Works like this: once you create a TYPESAFE account and API key, you get a credit for $5 free usage. jevgram is intended for personal use, and you can check a lot of documents for $5. Once you use up the free credit, jevgram will fail and politely tell you to add credit card number to TYPESAFE (to be fair, this is untested because I have not reached that point yet)

Notes

Authorship detection is probabilistic.

This document is mostly AI :-)

Metadata

Release files for jevgram 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jevgram 0.1.5
File Size Uploaded Provenance
jevgram-0.1.5.tar.gz 9.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for jevgram 0.1.5
File Interpreter ABI Platform
jevgram-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / jevgram-0.1.5.tar.gz

Download URL jevgram-0.1.5.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c8981e7a971bc0874c508eef76c4b020115f6f08f21a7ba924db05deb8121b4e
BLAKE2b-256 checksum
How to use checksums
fcd71cdbc7c8ccf5b35316780a29c8688f114a57513c39ed791a8a4f52c3f25e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.4

Release files / jevgram-0.1.5-py3-none-any.whl

Download URL jevgram-0.1.5-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
80b71adc077f9957095beaf365983a78716c768361610e3fed10245f76039ba5
BLAKE2b-256 checksum
How to use checksums
e52f303f7f20f90535c0830dac98ebf249065086103f0525ed34eec9ca0919c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.4

Security for jevgram 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page