Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions src/content/tools/mdoc.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<summary>Can I download mdoc today?</summary>
<p>Yes, as a public beta for Macs with Apple silicon and Windows PCs. Get it from the
<a href="/mdoc/download/">download page</a>. Beta builds may still have rough edges, so
try mdoc with made-up or non-confidential documents first. mdoc tells you in its
settings when a newer version is out.</p>
try mdoc with made-up or non-confidential documents first. mdoc tells you when a
newer version is out.</p>
</details>

<details>
Expand All @@ -14,16 +14,27 @@ settings when a newer version is out.</p>
computer. mdoc connects to the internet only when you approve the one-time download of
its recognition and pseudonymization models, from GitHub and Hugging Face.
After that it works offline. It also checks GitHub for a newer version when it starts,
without sending any document data; you can turn that off in its settings. Text reaches an AI tool only when you copy it and paste
it there yourself, and that tool’s own data terms then apply.</p>
without sending any document data; you can turn that off in Settings. Text reaches an
AI tool only when you copy it and paste it there yourself, and that tool’s own data
terms then apply.</p>
</details>

<details>
<summary>How do the real names get back into the AI’s answer?</summary>
<p>Copy the answer from ChatGPT or Claude and choose <strong>Paste AI reply</strong> in
mdoc. It opens the answer in a new tab with every alias it knows replaced by the
original wording, on your computer. Aliases it does not recognize are highlighted
rather than guessed. To come back to a matter later, save it as a case: the mapping
is stored encrypted on this computer, with its key protected by the operating system
(the macOS keychain or Windows data protection).</p>
</details>

<details>
<summary>How reliable is pseudonymization?</summary>
<p>It catches most names and identifiers, but not all of them. In our tests on
synthetic English legal documents it found about 84% of identifying details;
Russian text is detected less reliably. That is why mdoc only <em>proposes</em>
replacements: you review each one, add anything it missed, and approve before
replacements: you review each one, add anything it missed, and apply them before
copying. Dates, amounts and other context are not replaced automatically and
may still identify the parties. Pseudonymization helps you prepare a document;
it does not guarantee that the result is anonymous.</p>
Expand Down
4 changes: 2 additions & 2 deletions src/layouts/Layout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ const preview =
property="og:image:alt"
content={
socialImage.includes("mdoc")
? "mdoc by Lawkitt. Legal documents, prepared for your next step."
: "Lawkitt. Practical tools for everyday legal work."
? "mdoc by Lawkitt. Use AI on client documents without sending client names."
: "Lawkitt. Free, open-source tools for legal work."
}
/>
<meta name="twitter:card" content="summary_large_image" />
Expand Down
26 changes: 13 additions & 13 deletions src/lib/catalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,20 @@ export const tools = [
slug: "mdoc",
name: "mdoc",
category: "Document preparation",
tagline: "Prepare legal documents for AI. Privately.",
tagline: "Use AI on client documents without sending client names.",
pitch:
"Open PDFs, scans and Word files, pseudonymize sensitive details, and copy clean text into any AI tool. Everything runs locally on your Mac or PC.",
headline: "Prepare legal documents for AI. Privately.",
"Open PDFs, scans and Word files, replace client names with aliases, and paste the text into any AI chat. mdoc restores the real names in the reply. Everything runs on your Mac or PC.",
headline: "Use AI on client documents without sending client names.",
maturity: !latestMdocRelease
? "In development"
: latestMdocRelease.prerelease
? "Beta"
: "Stable",
availability: mdocAvailability,
availabilityNote: latestMdocRelease
? "For Apple Silicon Macs and Windows PCs."
? "For Macs with Apple silicon and Windows PCs."
: "Public installers are being prepared. Watch the repository for the first release.",
platforms: ["macOS (Apple Silicon)", "Windows"],
platforms: ["macOS (Apple silicon)", "Windows"],
source: "https://github.com/lawkitt/mdoc",
issues: "https://github.com/lawkitt/mdoc/issues",
license: "GPL-3.0-or-later",
Expand Down Expand Up @@ -115,23 +115,23 @@ export const mdoc = tools[0]!;
export const mdocFeatures: readonly Feature[] = [
{
title: "Opens what you have",
body: "PDF, Word, Excel, PowerPoint, OpenDocument, RTF, EPUB and CSV files become clean, editable text.",
body: "PDF, Word, Excel, PowerPoint, OpenDocument, RTF, EPUB and CSV files become editable text, with PDF and Word originals beside it. Your file is never changed.",
},
{
title: "Reads scanned PDFs",
body: "Text recognition runs on your computer, in English or English and Russian. About 40 pages a minute.",
body: "Text recognition runs on your computer, in English or in English and Russian. About 40 pages a minute.",
},
{
title: "Original side by side",
body: "Check the converted text against the PDF or Word original while you edit. The original file is never changed.",
title: "Replaces names with aliases",
body: "People, companies, emails, phone numbers, addresses and bank details get consistent aliases such as PERSON_1. You review every one and add what was missed.",
},
{
title: "Pseudonymize",
body: "Names, companies, emails, phone numbers, addresses and IDs are replaced with consistent aliases like PERSON_1. You approve each one.",
title: "Copy for AI",
body: "One click copies the text as Markdown, with a short note asking the AI to keep every alias as written.",
},
{
title: "Copy for AI",
body: "One click copies the prepared text as Markdown, ready to paste into ChatGPT or Claude.",
title: "Restores the reply",
body: "Paste the AI’s answer back and mdoc puts the real names in, in a new tab. Saved cases keep the mapping, encrypted on this computer.",
},
{
title: "Local and fast",
Expand Down
11 changes: 6 additions & 5 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ import { tools } from "../lib/catalog";
<h1 data-rise>Free, open-source tools for legal work.</h1>
<p class="hero-subtitle" data-rise style="--d:.07s">
We start with <strong>mdoc</strong>: open PDFs, scans and Word files,
replace client names, and copy clean text into ChatGPT or Claude. It
all happens on your own computer.
replace client names with aliases, and paste the text into ChatGPT or
Claude. The real names come back in the reply, and nothing is
uploaded.
</p>
<ul class="facts" data-rise style="--d:.14s">
<li>
Expand Down Expand Up @@ -58,15 +59,15 @@ import { tools } from "../lib/catalog";
<h3>Made for working with AI</h3>
<p>
Our tools prepare your work for the assistants you already use, such
as ChatGPT or Claude. They don’t try to replace them.
as ChatGPT or Claude. They don’t replace them.
</p>
</article>
<article>
<span class="principle-num">02</span>
<h3>Confidential by design</h3>
<p>
mdoc runs on your computer. Nothing is shared until you choose to
copy it.
mdoc runs on your computer. Nothing leaves it until you copy text
out yourself, and what you copy carries aliases, not names.
</p>
</article>
<article>
Expand Down
7 changes: 4 additions & 3 deletions src/pages/mdoc/download.astro
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ import {
) : (
<>
<p class="download-intro">
The first public release of mdoc is being prepared. To hear the
moment it’s out, watch the repository on GitHub: choose{" "}
The first public release of mdoc is being prepared. To hear when
it’s out, watch the repository on GitHub: choose{" "}
<strong>Watch → Custom → Releases</strong>. GitHub then notifies you
about new releases only.
</p>
Expand Down Expand Up @@ -137,7 +137,8 @@ import {
<h2>System requirements</h2>
<ul class="requirements">
<li>
<strong>Mac</strong> with Apple silicon (M1 or later).
<strong>Mac</strong> with Apple silicon (M1 or later), macOS 11 or
later.
</li>
<li>
<strong>Windows PC</strong> (x64). Scanned-page recognition also
Expand Down
23 changes: 12 additions & 11 deletions src/pages/mdoc/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import { Content } from "../../content/tools/mdoc.md";
---

<Layout
title="mdoc — Prepare legal documents for AI on your computer | Lawkitt"
description="mdoc is a free, open-source desktop app for Mac and Windows. Open PDFs, scans and Word files, check them against the original, replace client names, and copy clean text into ChatGPT or Claude."
title="mdoc — Use AI on client documents without sending client names | Lawkitt"
description="mdoc is a free, open-source desktop app for Mac and Windows. It turns PDFs, scans and Word files into editable text, replaces client names with aliases before you paste into ChatGPT or Claude, and restores them in the reply. Nothing is uploaded."
socialImage="/social/mdoc.png"
>
<section class="hero product-hero">
Expand All @@ -24,12 +24,13 @@ import { Content } from "../../content/tools/mdoc.md";
<span class="tag">Free · Open source</span>
</div>
<h1 data-rise style="--d:.07s">
Prepare legal documents for AI, on your own computer.
Use AI on client documents without sending client names.
</h1>
<p class="product-intro" data-rise style="--d:.14s">
Open PDFs, scans and Word files. Check the text against the
original, replace client names, and copy the result into ChatGPT or
Claude.
Open PDFs, scans and Word files, replace names and other identifying
details with aliases, and paste the text into ChatGPT or Claude.
When the answer comes back, mdoc puts the real names in. Nothing is
uploaded.
</p>
<div class="actions" data-rise style="--d:.21s">
<a class="btn btn-primary" href="/mdoc/download/">
Expand All @@ -41,7 +42,7 @@ import { Content } from "../../content/tools/mdoc.md";
</div>
<p class="availability-note">
{mdocAvailability}
<span aria-hidden="true">·</span> macOS (Apple Silicon) and Windows
<span aria-hidden="true">·</span> macOS (Apple silicon) and Windows
<span aria-hidden="true">·</span>
{mdoc.license}
</p>
Expand Down Expand Up @@ -80,14 +81,14 @@ import { Content } from "../../content/tools/mdoc.md";
</div>
<p>
Recorded in mdoc on a fictional letter before claim: find what
identifies people, fix what detection missed, share only aliases and
bring the AI's reply back with the real names.
identifies people, fix what detection missed, share only aliases, and
bring the AI’s reply back with the real names.
</p>
</div>
<DemoVideos />
<p class="film-note">
Screen recordings of mdoc 0.1.0-beta.11, no audio. Detection can miss
identifiers, so review before sharing.
Screen recordings of mdoc 0.1.0-beta.11, without sound. Detection can
miss identifiers, so always review before you share.
</p>
</div>
</section>
Expand Down
Loading