{"adoption": {"forks": 70, "observed_at": "2026-08-28T04:04:10.347245+00:00", "stars": 1263}, "canonical_url": "https://ross.abutalabs.com/products/wordgrinder", "card": {"archived": false, "artifact_type": "application", "description": "A word processor which gets the hell out of your way and lets you get some work done.", "domain": ["text-editors", "developer-tools", "cross-platform"], "enriched": true, "function": ["editor", "markdown", "templating"], "health_score": 72, "homepage": "http://cowlark.com/wordgrinder", "language": "Lua", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["davidgiven/wordgrinder"], "name": "davidgiven/wordgrinder", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-06-09T20:49:05+00:00", "repo": "davidgiven/wordgrinder", "stars": 1263, "tags": ["word-processor", "tui", "distraction-free-writing", "novel-writing", "terminal-app", "unicode", "opendocument", "document-conversion", "spellchecker", "lua", "command-line", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["write a novel or long-form text in the terminal", "distraction-free word processor without a GUI", "edit my documents over SSH on a remote server", "minimal writing tool with basic bold, italic, and heading styles", "convert documents between its format and Markdown, HTML, or OpenDocument", "lightweight word processor that runs on Linux, macOS, and Windows consoles"], "what_it_is": "WordGrinder is a Unicode-aware, character-cell word processor that runs in a terminal (with optional GUI frontends for X11, Windows, and macOS) and is designed for distraction-free writing such as novels. It offers just enough paragraph and character styling, undo/redo, a spellchecker, configurable shortcuts, and import/export with HTML, Markdown, OpenDocument, LaTeX, and Troff.", "when_to_avoid": ["You need WYSIWYG layout, fonts, tables, images, or desktop-publishing features", "You require right-to-left scripts, combining characters, or other advanced text shaping", "You need collaboration, commenting, or track-changes workflows", "You want a polished GUI-first office suite experience"], "when_to_choose": ["You want to focus on words and prose rather than formatting, fonts, or page layout", "You work in a terminal, over SSH, or on low-resource machines where a GUI word processor is overkill", "You need a small, fast, scriptable editor with document conversion to common text formats", "You want style and shortcut configuration stored with the document itself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wordgrinder", "repo": "davidgiven/wordgrinder", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:10.347245+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:04:07.902600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "364084755419686c67e59080fd449951a2f226bda56ff8e7e8d09b889d19b050", "fetched_at": "2026-08-28T04:04:10.347245+00:00", "kind": "readme", "missing": false, "url": "https://github.com/davidgiven/wordgrinder"}, {"content_hash": "a9dbded8e464b77c9909107be3c9faa278328feb9beefbf11dd0c63dbc011d93", "fetched_at": "2026-08-29T12:16:11.715667+00:00", "kind": "homepage", "missing": false, "url": "http://cowlark.com/wordgrinder"}, {"content_hash": "5073c960a690d6ca64e2373fbb1233c701bc13df8c635541ccc0fdd8f7fcf0fe", "fetched_at": "2026-08-29T12:16:11.725885+00:00", "kind": "site_page", "missing": false, "url": "http://cowlark.com/about"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4105, "days_push": 85, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}