Open source AI content detection. One API. Zero dependencies.
Detect AI-generated text, images, audio, and video—entirely offline, with no external API calls.
| Feature | HumanMark | GPTZero, etc. |
|---|---|---|
| Self-hosted | ✅ | ❌ |
| Works offline | ✅ | ❌ |
| Zero cost | ✅ | ❌ |
| Privacy-first | ✅ | ❌ |
| Open source | ✅ | ❌ |
| Multi-modal | ✅ Text, Image, Audio, Video |
| Use Case | Description |
|---|---|
| Content platforms | Filter AI spam from submissions |
| Hiring tools | Check candidate writing samples |
| Education apps | Verify student work |
| Social apps | Flag synthetic profiles/posts |
| CMS plugins | WordPress, Ghost, etc. |
| CI/CD pipelines | Lint content like you lint code |
| Browser extensions | Detect AI on any page |
| Who | Why HumanMark |
|---|---|
| Enterprises | Compliance requirements—can't send data to third-party APIs (HIPAA, GDPR, SOC2) |
| Government & Defense | Air-gapped networks, classified environments |
| Law firms | Attorney-client privilege, can't upload client docs to cloud |
| Healthcare | Patient data must stay on-premise |
| Banks & Financial | Regulatory restrictions on data sharing |
| Universities | High volume (100K+ students), budget constraints |
| Publishers & Media | Own the tool, don't rent it |
go install github.com/vinpatel/humanmark/cmd/api@latestdocker run -p 8080:8080 humanmark/humanmarkgit clone https://github.com/vinpatel/humanmark.git
cd humanmark
go run cmd/api/main.goServer runs at http://localhost:8080
curl -X POST http://localhost:8080/verify \
-H "Content-Type: application/json" \
-d '{"text": "Your content here"}'{
"id": "abc123",
"human": true,
"confidence": 0.85,
"content_type": "text"
}curl -X POST "http://localhost:8080/verify?detailed=true" \
-H "Content-Type: application/json" \
-d '{"text": "Your content here"}'HumanMark uses statistical and forensic analysis—no ML models required.
| Signal | Human | AI |
|---|---|---|
| Sentence length variance | High | Low |
| Vocabulary richness | Varied | "Safe" words |
| Contractions | "don't", "I'm" | "do not", "I am" |
| Punctuation variety | !?;:— | Mostly periods |
| AI phrases | Rare | "As an AI...", "It's important to note..." |
| Signal | Real Photo | AI Image |
|---|---|---|
| EXIF metadata | Present | Missing/fake |
| Camera make | Apple, Canon, etc. | None |
| Sensor noise | Natural pattern | Too clean |
Analyzes format metadata, encoder signatures, and AI tool markers.
| Endpoint | Method | Description |
|---|---|---|
/verify |
POST | Analyze content |
/verify/{id} |
GET | Get result by ID |
/health |
GET | Health check |
| Variable | Default | Description |
|---|---|---|
PORT |
8080 | Server port |
ENV |
development | Environment |
LOG_LEVEL |
info | Logging level |
We welcome contributions! See CONTRIBUTING.md.
Help us improve accuracy by reporting false positives/negatives.
MIT License. See LICENSE.
Star this repo if you find it useful!
