Writing & Content text-humanizationmultilingual-writingmeaning-preservationstylometrydocument-auditingnodejs-cliprompt-engineering

Patina Multilingual Writing Editor

Find and rewrite AI-sounding phrasing in Korean, English, Chinese, and Japanese while preserving claims, numbers, polarity, and causation.

FollowAgents review · FARS-2.1
Recommended
83/ 100 5-point scale 4.2 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust24 / 29 · 4.1/5

The workflows use read-only permissions by default, while dataset, npm, and GHCR publication require explicit Boolean inputs or constrained tag/branch conditions, protected environments, and source-commit checks. Browser tests impose a same-origin boundary, reject below-floor output, and exercise cancellation. Private text, keys, and tokens are explicitly within the security policy, and the README says BYOK keys are neither stored nor logged; however, the supplied files omit the relevant implementation and a complete privacy or retention policy, so data-flow transparency and sensitive-data handling do not earn full marks. Runtime dependencies are minimal and some release actions are commit-pinned, but several actions use moving major-version tags and no lockfile, vulnerability scan, or dependency-update policy is shown. Rejected CLI candidates are not written and source files remain unchanged, offering partial recovery, but there is no complete user-facing rollback procedure. MIT copyright, NOTICE references, inspirations, and repository ownership are clearly attributed.

2Reliability11 / 14 · 3.9/5

The README, package metadata, workflows, and tests are broadly aligned on version 8.10.0, Node requirements, commands, and verification floors. Release automation checks metadata, tests, benchmark drift, and artifact identity. A visible inconsistency remains: the version badge's alt text says 8.8.0 while its displayed value is 8.10.0. The registry is also stated to remain at 8.9.0; this is explained, but still complicates consistency. Dependencies and backend choices are documented and offline scoring is available, though online rewriting, the hosted API, external CLIs, and browser use rely on services whose availability guarantees are not established here. Browser and CLI tests cover unavailable service responses, semantic drift, cancellation, timeout, and rejected writes with visible, specific failure states, supporting full credit for failure messaging.

3Adaptability16 / 18 · 4.4/5

The source addresses Korean, English, Chinese, and Japanese and distinguishes browser, Agent skill, CLI, CI, batch, blog, and document-type scenarios. Document Type, Persona, and Register are explicitly independent. Boundaries are unusually clear: this is an editing aid rather than authorship proof or detector evasion, scores have false positives and negatives, and omitted axes preserve source characteristics. Commands and modes are precise, but the suggested Agent installation instruction fetches from the mutable main branch rather than a pinned revision, reducing trigger and installation precision. Node requirements, configuration examples, offline operation, multiple backends, and narrow-viewport browser tests provide strong environment-fit evidence.

4Convention16 / 18 · 4.4/5

The README has coherent navigation to installation, the CLI contract, architecture, authentication, cookbook, examples, pattern catalog, research, FAQ, contribution guidance, and changelog. Quick Start covers the no-install browser, Agent skill, and Node CLI, while commands, configuration, and before/after examples are concrete and the example is explicitly labeled synthetic. Known limitations, retired clients, and the non-authorship purpose are disclosed. LICENSE and package metadata consistently identify MIT. Version and release-channel handling are described and a changelog is referenced, but its contents are absent and the badge alt text is stale, so version governance is not fully demonstrated. SECURITY.md identifies main as the maintained branch and gives private reporting and issue-routing paths, but the unverified publisher is not a deduction by itself; the absence of a named responsible maintainer or response commitments keeps maintenance responsibility below full marks.

5Effectiveness10 / 13 · 3.8/5

Outputs support diff, audit, score, verify, structured receipts, and gate states. Tests show that approved results are copyable while drifted, interrupted, and cancelled results are not, and that rejected CLI candidates are never written, providing strong output-usability evidence. Four-language pattern packs, independent style axes, and meaning safeguards plausibly add value beyond generic rewriting, but the complete pattern catalog, calibration artifacts, and cited study are not supplied, so the claimed 189 patterns and measured efficacy cannot be fully evaluated. Browser, offline, BYOK, Pro, and local CLI routes offer useful choices, but pricing, latency, resource use, and backend cost comparisons are absent, limiting the cost-benefit score.

6Verifiability6 / 8 · 3.8/5

The README maps claims about pattern counts, calibration intervals, research, benchmarks, and architecture to named repository documents. Workflows check benchmark drift, source commits, artifact identity, and release versions, while the supplied browser and CLI tests corroborate gating, cancellation, credential transport form, and rejected-write behavior. However, most referenced research, catalogs, authentication documentation, implementation files, and generated reports are not included, so central effectiveness statistics are traceable only to filenames and cannot be checked from this evidence set. The source carefully distinguishes synthetic examples, historical recordings, live runs, and measured scores, and states that scores are editing signals rather than authorship proof, earning full credit for fact/inference separation.

Evidence confidence: Low Reviewed Sep 22, 2026 Reviewed revision 50b4feeac9c9
Before you use it
  • This is a static review only; no code, tests, installation scripts, hosted services, or release workflows were executed.
  • Browser rewriting sends private drafts to a server. The claim that BYOK keys are never stored or logged is not supported here by implementation or retention-policy evidence and should be verified before submitting sensitive material.
  • The Agent installation prompt references a mutable raw file on the main branch; controlled deployments should pin the reviewed commit or a verified release artifact.
  • The 189-pattern count, calibration figures, and research findings depend on documents and data not supplied here, so meaning preservation and efficacy should not be treated as independently confirmed.
  • Some GitHub Actions use major-version tags rather than commit pins; the lockfile, dependency audit status, and supply-chain update policy should also be checked.
  • Publisher identity is unknown, not suspicious; adopters should still confirm the responsible maintainer, response expectations, and authoritative update channel.
Review evidence [1][2][3][4][5][6][7][8][9]
See the full review method →

What does this agent do, and when should you use it?

Patina is a deterministic, pattern-based writing editor for Korean, English, Chinese, and Japanese. Its 189 named patterns flag AI-associated phrasing and support rewrites intended to preserve claims, numbers, polarity, and causal relationships. The repository ships an agent skill for Claude Code, Codex, Cursor, and OpenCode, a Node.js CLI, and a no-install browser playground. The CLI exposes rewrite, verify, audit, score, and diff modes, with separate controls for document type, persona, and register. Browser rewrites run server-side and are rejected when they fall below MPS or fidelity thresholds, while offline scoring provides a deterministic CI option without an API key. It is positioned for permitted AI-assisted editing, not detector evasion or authorship attribution.

Patina reads text pasted into its browser interface or files supplied to patina/patina-cli, then matches named patterns associated with AI-styled writing. Its normal path rewrites matched text; --audit reports patterns without rewriting, --score --offline produces a deterministic editing score, --diff explains pattern-level changes, and --verify checks the rewrite against MPS/fidelity floors. --document-type controls genre conventions and pattern policy, --persona applies a reusable voice learned from a sample, and --register casual|professional changes delivery without filling omitted axes. The CLI can process multiple files with --batch, write results to an output directory, and create personas with persona new. Browser rewrites execute on the service, and API mode forwards a user-supplied key for each request with a stated policy that the key is neither stored nor logged.

  1. A professional polishing an AI-assisted Korean, English, Chinese, or Japanese email can shorten formulaic phrasing and inspect every edit with --diff before sending.
  2. A documentation team can run --score --offline --exit-on 30 as a deterministic CI gate that flags likely editing hotspots without an API key.
  3. An editorial team handling several content genres can use Document Type for structural conventions and Persona for a consistent reusable voice.
  4. An author working with number-sensitive or claim-sensitive material can use --verify or /patina --strict to reject rewrites that miss the configured meaning floors.
  5. A technical writer can process a directory of Markdown files with --batch docs/*.md --outdir cleaned/ and keep the rewritten copies together.
  6. An occasional user who does not want a local runtime can paste text into the hosted playground and receive a server-side, fidelity-gated rewrite.

What are this agent's strengths and limitations?

Pros
  • All 189 patterns are named, and --diff exposes what changed and why, making edits more auditable than an unexplained black-box rewrite.
  • MPS/fidelity gates explicitly protect claims, numbers, polarity, and causation and can reject rewrites that drift in meaning.
  • Document Type, Persona, and Register are independent controls, so genre, reusable voice, and delivery style can be managed separately.
  • The project covers agent workflows, a Node.js CLI, batch processing, offline CI scoring, and a browser surface rather than requiring one editing environment.
  • Its documentation treats scores as fallible editing signals and reports calibration intervals and rewrite failures instead of presenting them as authorship proof.
Limitations
  • The score cannot establish whether a person or an AI wrote the text; the documented false-positive rate on KO+EN human controls is 16.0%.
  • The CLI requires Node.js 18+, and model-backed rewriting may also depend on network access, user credentials, or a logged-in third-party model CLI.
  • The repository is at 8.10.0 while npm currently serves 8.9.0, so npx users may not receive the repository's latest behavior.
  • The published calibration figures cover Korean and English rather than providing equivalent Chinese and Japanese validation.
  • The VS Code, Obsidian, and Gmail preview clients are retired, creating migration work for teams that expected native editor integrations.
  • A pattern-based system is limited to the phenomena represented in its catalog, and the project explicitly acknowledges that rewriting does not always succeed.

How do you install or deploy this agent?

The CLI requires Node.js 18 or newer and can be run without a global install through npx patina-cli. To install the agent skill in Claude Code, Codex CLI, Cursor, or another agent, submit: Install patina by following https://raw.githubusercontent.com/devswha/patina/main/INSTALLATION.md. Users of the skills.sh CLI can instead run npx skills add devswha/patina. The browser edition is available at https://patina.vibetip.help/?lang=en with no installation. A logged-in codex, claude, or gemini CLI can be used without a separate API key by selecting --backend codex-cli; browser API mode requires the user's own key for each request. The repository identifies itself as version 8.10.0, while the npm registry currently serves 8.9.0 for both patina-cli and patina-humanizer, so adopters should account for the release-channel gap.

How do you use this agent?

For a first CLI rewrite, run npx patina-cli --lang en input.txt. Check available backends and credentials with npx patina-cli doctor. After installing the agent skill, invoke /patina --lang en and paste the text. Use patina --audit input.txt for detection only, patina --diff input.txt for pattern-by-pattern explanations, and patina --verify input.txt for a rewrite followed by MPS/fidelity checks. A deterministic offline CI gate is available as patina --score --offline --exit-on 30 input.txt. For a professional email, run patina --document-type email --register professional input.txt. Project defaults can be stored in .patina.yaml with version: "8.10.0", language, and document-type; persona and register may be omitted to preserve those aspects of the source.

FAQ

Does Patina always require an API key?
No. Offline scoring works without one, and an already authenticated codex, claude, or gemini CLI can serve as a backend. Browser API mode requires the user to supply a key per request.
Can its score prove that text was generated by AI?
No. Patina describes the score as an editing signal with both false positives and false negatives, not as evidence of authorship.
How does it protect facts during rewriting?
The stated rewrite contract preserves claims, numbers, polarity, and causation. --verify, strict agent mode, and browser MPS/fidelity gates check for drift and can reject a rewrite, though consequential text should still receive human review.
Which languages and style controls are supported?
It supports Korean, English, Chinese, and Japanese. Document Type controls genre policy, Persona controls reusable voice characteristics, and Register selects casual or professional delivery; omitted axes preserve the source.
When should I choose the CLI instead of the browser?
Choose the browser for a no-install, server-side workflow. Choose the Node.js CLI for local files, batch jobs, detailed diffs, offline scoring, or CI integration.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents