Metadata-Version: 2.4
Name: microjournal
Version: 0.1.3
Summary: A distraction-free terminal writing environment for Raspberry Pi
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: click<9,>=8.1
Requires-Dist: rich<14,>=13.7
Requires-Dist: textual<1,>=0.79
Requires-Dist: tomli-w<2,>=1.0
Requires-Dist: typer<1,>=0.12
Provides-Extra: nlp
Requires-Dist: spacy<4,>=3.7; extra == "nlp"
Provides-Extra: voice
Requires-Dist: faster-whisper<2,>=1.1; platform_machine != "armv6l" and extra == "voice"
Requires-Dist: numpy<3,>=1.26; extra == "voice"
Requires-Dist: sounddevice<1,>=0.5; extra == "voice"
Provides-Extra: dev
Requires-Dist: numpy<3,>=1.26; extra == "dev"
Requires-Dist: pytest<9,>=8; extra == "dev"

# MicroJournal

MicroJournal turns a Raspberry Pi into a distraction-free terminal writing appliance.

It is built for headless use over SSH, so you do not need a GUI, a custom OS image, or any cloud account to get started.

If you want larger text, raise the font size in your terminal emulator and enable MicroJournal's large UI mode.

## Install

```bash
uv tool install microjournal
```

If you want spaCy-powered NLP, install the optional NLP extra:

```bash
uv tool install "microjournal[nlp]"
```

If you want local voice dictation, install the optional voice extra:

```bash
uv tool install "microjournal[voice]"
```

The voice extra skips `faster-whisper` on Linux `armv6l`, because the upstream wheel stack is not available there.

## Local development

```bash
uv run microjournal
```

## Commands

- `microjournal` launches the editor
- `microjournal setup` runs first-time configuration
- `microjournal config` edits settings
- `microjournal sync` syncs notes
- `microjournal export` exports notes
- `microjournal pack export` writes a shareable visual pack JSON file
- `microjournal pack load` applies a visual pack from a JSON file
- `microjournal doctor` checks hardware and dependencies
- `microjournal dictate` runs push-to-talk local speech-to-text

## Storage

- Notes are stored as Markdown in `~/MicroJournal/notes`
- Config is stored in `~/.config/microjournal/config.toml`
- Autosave is enabled by default and runs every 5 seconds

## First run

1. Run `microjournal setup`
2. Choose your notes folder
3. Pick the display mode, boot behavior, sync placeholder, theme, and large UI preference
4. Launch `microjournal`

## Editor shortcuts

- `Ctrl+S` save
- `Ctrl+N` new note
- `Ctrl+F` search notes
- `Ctrl+P` command palette
- `Ctrl+T` theme maker
- `Ctrl+R` view note stats
- `Ctrl+E` export note stats
- `F8` toggle voice recording
- `Ctrl+Q` quit

## NLP stats

- The footer shows live writing stats plus spaCy-powered NLP stats when the optional `nlp` extra is installed
- Note stats export creates a companion `*.ner.md` file with entities and summary stats
- If you install the optional `nlp` extra and the `en_core_web_sm` model is available, named-entity results are richer

## Voice dictation

- The prototype uses the optional `voice` extra with `faster-whisper` plus microphone capture, all locally
- Dictated text is inserted into the editor at the cursor
- Voice mode is push-to-talk: press `Voice` or `F8` to start, then press it again to stop

## Accessibility

- Large UI mode increases spacing, sidebar width, and footer breathing room
- The app does not force terminal font size; that is still controlled by your terminal emulator
- Visual packs let you share a theme, palette, and display setup as a JSON file
- Use the command palette to open the in-app Theme Maker, tweak a pack, and export it for sharing

## Roadmap

- Typing telemetry for sparklines and dashboards, focused on aggregated local writing data rather than raw keystrokes
- More visual pack presets for cyberdeck-style builds
- Better export/share flows for Reddit-ready screenshots and pack files
