The Redacted Assistant

Writing Tool · 2025

AI-assisted writing with strategic gaps—fill the blanks, find your voice. A collaborative writing tool that uses AI to generate text with strategic redactions, allowing writers to maintain autonomy while leveraging AI assistance.

Features

Core Writing Features

  • 5 Writing Styles: Choose from Philosophical, Poetic, Critical Theory, Stream of Consciousness, or Hyperstitious
  • Dynamic Redaction: Adjust density slider to control how much text is hidden
  • Click to Reveal: Click redacted words to reveal the AI's original text
  • Custom Text Editing: Fill in your own words instead of revealing (madlib mode)
  • File Upload: Upload .txt or .md files as prompts

Session Management

  • Save Sessions: Persist your writing sessions for later
  • Session History: Browse and load previous sessions
  • Export to Markdown: Export sessions as markdown files
  • Persistent Storage: Sessions saved to ~/.redacted-assistant/sessions.json (survives browser clears)

Desktop App

  • Native macOS App: Built with Tauri for native performance
  • Custom Icon: Beautiful app icon in dock and system
  • Cross-platform Ready: Can build for Windows, Linux, and macOS

How It Works

  1. Enter a prompt describing what you want to write about
  2. Select a writing style (philosophical, poetic, etc.)
  3. Generate text — AI creates text with strategic redactions
  4. Adjust density — Use the slider to control how much is hidden
  5. Reveal or customize:
    • Click redacted words to reveal the original
    • Click "Fill the gaps" to enter madlib mode and type your own words
  6. Save your session — Persist your work for later

The Redaction Algorithm

The redaction system is the core innovation that makes real-time density adjustment possible. When you generate text, the AI analyzes each word and assigns a redactionRank:

  • Positive ranks (1, 2, 3...) — Sequential ranks assigned to semantically significant words. Lower numbers = more important words. Higher numbers = less critical words.
  • Rank -1 — Words that should NEVER be redacted (punctuation, very common words, structural elements). These remain visible regardless of density setting.

When you adjust the density slider, the app calculates which words to redact without regenerating—all calculation happens client-side in milliseconds. This means:

  • Instant feedback — Slider movement immediately updates the display
  • No API calls — All calculation happens in the browser
  • Preserves state — Revealed words and custom text remain intact

Example: At density 0.25, only the most important words (rank 1) are hidden. At density 0.75, words ranked 1-3 are hidden, giving you more scaffolding to fill.

Philosophy

The Redacted Assistant helps writers retain autonomy while leveraging AI. Instead of AI writing everything, it creates a scaffold with strategic gaps that you fill in—either by revealing the AI's suggestions or writing your own words. This maintains your voice while getting AI assistance.

Quick Start

Prerequisites

  • Node.js (v18+ recommended)
  • Python 3 (for persistent storage backend)
  • Gemini API Key (Get one here)

Installation

  1. Clone and install dependencies: npm install
  2. Set up your API key in .env.local: VITE_GEMINI_API_KEY=your_api_key_here
  3. Start the application: ./start.sh
  4. Open in browser at http://localhost:5173

Desktop App

Build for production: npm run tauri:build

Built apps will be in src-tauri/target/release/bundle/ (macOS .app/.dmg, Windows .exe/.msi, Linux .AppImage/.deb)

Storage

Persistent Storage (Recommended): Sessions saved to ~/.redacted-assistant/sessions.json via Python Flask backend. Survives browser clears, easy to backup/restore.

Browser Storage (Fallback): Uses localStorage if Python backend is not running. Works offline, but data is lost when browser data is cleared.

Links