# Tikker CLI Tools - Usage Guide This guide demonstrates how to use the four main Tikker command-line tools. ## Tools Overview 1. **tikker-decoder** - Convert keystroke tokens to readable text 2. **tikker-indexer** - Build word index and analyze frequency 3. **tikker-aggregator** - Generate keystroke statistics 4. **tikker-report** - Create HTML activity reports ## Prerequisites All tools are compiled C binaries located in `build/bin/`: ```bash build/bin/tikker-decoder build/bin/tikker-indexer build/bin/tikker-aggregator build/bin/tikker-report ``` ## tikker-decoder Converts keystroke token data to readable text. ### Basic Usage ```bash tikker-decoder ``` ### Examples Decode a single day's log: ```bash tikker-decoder logs_plain/2024-11-28.txt decoded_2024-11-28.txt ``` Decode with verbose output: ```bash tikker-decoder --verbose logs_plain/2024-11-28.txt decoded.txt ``` Show decoding statistics: ```bash tikker-decoder --stats logs_plain/2024-11-28.txt decoded.txt ``` ### Input Format The input format uses bracket notation for tokens: ``` [a][b][c] → "abc" [LEFT_SHIFT][h][e][l][l][o] → "Hello" [LEFT_SHIFT][a] → "A" [BACKSPACE] → (removes last character) [ENTER] → (newline) [TAB] → (tab character) [SPACE] → (space) ``` ## tikker-indexer Builds a word index and analyzes word frequency. ### Basic Usage ```bash tikker-indexer [options] ``` ### Options - `--index` - Build index from logs_plain directory - `--popular [N]` - Show top N words (default: 10) - `--find ` - Find specific word statistics - `--database ` - Custom database (default: tags.db) ### Examples Build word index: ```bash tikker-indexer --index ``` Show top 50 most popular words: ```bash tikker-indexer --popular 50 ``` Find frequency of specific word: ```bash tikker-indexer --find "function" ``` Find with custom database: ```bash tikker-indexer --database words.db --find "variable" ``` ### Output Example Popular words output: ``` Top 10 most popular words: # Word Count Percent - ---- ----- ------- #1 the 15423 12.34% #2 function 8921 7.15% #3 return 7234 5.80% #4 if 6512 5.22% #5 for 5623 4.50% ``` ## tikker-aggregator Generates keystroke statistics and summaries. ### Basic Usage ```bash tikker-aggregator [options] ``` ### Options - `--daily` - Daily statistics - `--hourly ` - Hourly stats for specific date - `--weekly` - Weekly statistics - `--weekday` - Weekday comparison - `--format ` - Output format: json, csv, text (default: text) - `--output ` - Write to file - `--database ` - Custom database (default: tikker.db) ### Examples Daily statistics: ```bash tikker-aggregator --daily ``` Hourly stats for specific day: ```bash tikker-aggregator --hourly 2024-11-28 ``` Weekly statistics in JSON format: ```bash tikker-aggregator --weekly --format json --output weekly.json ``` Weekday comparison: ```bash tikker-aggregator --weekday ``` ### Output Example Daily Statistics: ``` Daily Statistics ================ Total Key Presses: 45623 Total Releases: 45625 Total Repeats: 12341 Total Events: 103589 ``` Weekday Comparison: ``` Weekday Comparison ================== Day Total Presses Avg Per Hour --- -------- ----- --- ---- ---- Monday 12500 521 Tuesday 13200 550 Wednesday 12800 533 Thursday 11900 496 Friday 13100 546 Saturday 8200 342 Sunday 9100 379 ``` ## tikker-report Generates comprehensive HTML activity reports. ### Basic Usage ```bash tikker-report [options] ``` ### Options - `--input ` - Input logs directory (default: logs_plain) - `--output ` - Output HTML file (default: report.html) - `--graph-dir ` - Directory with PNG graphs to embed - `--include-graphs` - Enable graph embedding - `--database ` - Custom database (default: tikker.db) - `--title ` - Report title ### Examples Generate default report: ```bash tikker-report ``` Custom output file: ```bash tikker-report --output activity-report.html ``` With embedded graphs: ```bash tikker-report --include-graphs --graph-dir ./graphs --output report.html ``` Custom database and title: ```bash tikker-report --database work.db --title "Work Activity Report" --output work-report.html ``` ### Output Generates an HTML file with: - Dark theme styling - Activity statistics - Generation timestamp - Optional embedded PNG graphs - Responsive layout ## Batch Processing ### Decode all logs at once ```bash for file in logs_plain/*.txt; do tikker-decoder "$file" "decoded/${file%.txt}.txt" done ``` ### Generate multiple reports ```bash for month in 01 02 03; do tikker-report \ --input "logs_plain/2024-$month" \ --output "reports/2024-$month-report.html" \ --title "Activity Report - November 2024" done ``` ## Database Management All tools support custom database paths: ```bash # Use separate database for work logs tikker-indexer --database work-tags.db --index # Generate report from specific database tikker-report --database work-logs.db --output work-report.html # Aggregator with custom database tikker-aggregator --database stats.db --daily ``` ## Performance Notes - **Decoder**: ~10x faster than Python version for large files - **Indexer**: Builds index for 100K words in < 1 second - **Aggregator**: Generates statistics in < 100ms - **Report**: Generates HTML in < 500ms with graphs ## Troubleshooting ### Tools not found Ensure build is complete: ```bash cd src/libtikker && make && cd ../tools && for d in */; do (cd $d && make); done ``` ### Permission denied Make tools executable: ```bash chmod +x build/bin/tikker-* ``` ### Database not found Default locations: - `tags.db` - for word indexer - `tikker.db` - for aggregator and report generator Specify custom paths with `--database` option. ### No data in reports Ensure logs exist in specified directory: ```bash ls logs_plain/ tikker-decoder logs_plain/*.txt # decode first tikker-indexer --index # build index tikker-aggregator --daily # generate stats ``` ## Backwards Compatibility These C tools are drop-in replacements for the original Python utilities: | C Tool | Python Original | Compatibility | |--------|-----------------|---------------| | tikker-decoder | ntext.py | 100% | | tikker-indexer | tags.py | Enhanced (faster) | | tikker-aggregator | api.py | 100% | | tikker-report | merge.py | 100% | All existing scripts and workflows continue to work unchanged. ## Getting Help All tools support `--help`: ```bash tikker-decoder --help tikker-indexer --help tikker-aggregator --help tikker-report --help ``` For detailed information, see the man pages: ```bash man tikker-decoder man tikker-indexer man tikker-aggregator man tikker-report ```