Using Personal NotesΒΆ
Capture insights, reflections, and context alongside your timeline with ChronoScope's persistent notes feature.
OverviewΒΆ
What Are Notes For?ΒΆ
The User Notes feature provides a dedicated space for stream-of-consciousness writing alongside your timeline. Unlike timeline events (which are extracted from documents), notes are your personal observations, insights, and reflections.
Common Use Cases:
- π Career reflections - Document patterns you notice in your career journey
- π‘ Meeting insights - Capture thoughts during timeline review sessions
- π― Goal setting - Plan future directions based on past patterns
- π Pattern recognition - Note recurring themes across life events
- π Analysis notes - Record observations about your timeline data
Notes vs. Timeline Events
Notes are your personal commentary and insights. Timeline Events are structured data points extracted from documents.
Think of notes as your journal entries about the timeline story.
Creating & Editing NotesΒΆ
Where to Find the Notes SectionΒΆ
The π User Notes section appears below the main tabs on the ChronoScope home page:
βββββββββββββββββββββββββββββββββββββββ
β Timeline Tab | Duplicate Tab | ... β
βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββ
β π User Notes β
β βββββββββββββββββββββββββββββββββ β
β β Note name: [text input] β β
β β Content: [text area] β β
β β [πΎ Save] [ποΈ Delete] β β
β βββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββ
Creating Your First NoteΒΆ
Step 1: Enter a Note Name
When you first open the app (with no existing notes), you'll see:
- A text input field labeled "Note name:"
- Placeholder text suggesting examples like:
- "Meeting ideas"
- "Career thoughts"
- "Project notes"
Good Note Names
β "Career Insights 2020-2023" β "Timeline Review Notes" β "Future Goals" β "Meeting with Mentor - Nov 2025"
β "Note1", "untitled", "asdf" (not descriptive)
Step 2: Write Your Content
Click in the text area below the note name and start typing. The text area supports:
- Multi-line text
- Markdown formatting (when you view the JSON)
- Up to ~10,000 characters comfortably (no hard limit)
Step 3: Save Your Note
Click the πΎ Save Note button. You'll see:
- β Success message: "Saved '[note name]'"
- The page will refresh to show your saved note
- Character count and last modified date appear in the metadata column
Manual Save Required
Notes are not auto-saved. You must click πΎ Save Note to persist your changes.
Editing Existing NotesΒΆ
For Multiple Notes:
-
Use the dropdown at the top to select which note to edit:
-
Select a note from the dropdown
- The note's content will load into the text area
- Edit as needed
- Click πΎ Save Note to update
Metadata Display:
When editing an existing note, you'll see metadata in the right column:
Deleting NotesΒΆ
To permanently delete a note:
- Select the note from the dropdown
- Click ποΈ Delete Note button
- Confirm the deletion
- β Success message: "Deleted '[note name]'"
Deletion is Permanent
Deleted notes cannot be recovered unless you have a backup of user_notes.json. See the Backup section below.
Understanding Your Notes DataΒΆ
Where Are Notes Stored?ΒΆ
Your notes are stored in a JSON file on your local machine:
Key Details:
- Variable name in app:
st.session_state.notes_store - Class:
UserNotesStore(handles loading/saving) - Format: JSON (human-readable text)
- Persistence: Survives app restarts
- Privacy: Local-only, never sent to cloud
JSON StructureΒΆ
Here's what the user_notes.json file looks like:
{
"notes": {
"Career Insights": {
"content": "I noticed a pattern of major role changes every ~2 years...",
"last_modified": "2025-11-15T14:23:45.123456",
"character_count": 245
},
"Meeting Notes": {
"content": "Discussion with mentor about leadership opportunities...",
"last_modified": "2025-11-14T10:15:30.987654",
"character_count": 187
}
},
"last_updated": "2025-11-15T14:23:45.123500",
"version": "1.0"
}
Field Explanations:
| Field | Description | Example |
|---|---|---|
notes | Dictionary of all your notes | {"Career Insights": {...}} |
content | The actual text you wrote | "I noticed a pattern..." |
last_modified | ISO 8601 timestamp of last save | "2025-11-15T14:23:45.123456" |
character_count | Length of content string | 245 |
last_updated | When the file was last saved | "2025-11-15T14:23:45.123500" |
version | File format version | "1.0" |
Viewing Notes Outside the AppΒΆ
Reading Your Notes DirectlyΒΆ
You can open user_notes.json in any text editor:
For better readability, use a JSON viewer:
- jsonviewer.stack.hu
- jsonformatter.org
- Browser extensions: JSON Formatter, JSON Viewer
Extracting Note ContentΒΆ
Using Python:
import json
# Load notes
with open('data/user_notes.json', 'r') as f:
data = json.load(f)
# Print all notes
for note_name, note_data in data['notes'].items():
print(f"\n=== {note_name} ===")
print(f"Modified: {note_data['last_modified']}")
print(f"Content:\n{note_data['content']}")
Using jq (command line):
# List all note names
jq '.notes | keys' data/user_notes.json
# Get specific note content
jq '.notes["Career Insights"].content' data/user_notes.json
# Export all notes to text files
jq -r '.notes | to_entries[] | "\(.key)\n\(.value.content)\n\n"' data/user_notes.json > all_notes.txt
Advanced FeaturesΒΆ
Managing Multiple NotesΒΆ
Progressive Disclosure:
- 0 notes: Simple interface with "Create New Note" prompt
- 1 note: Direct editing with metadata display
- 2+ notes: Dropdown selector + metadata + "Other notes" preview
Other Notes Preview:
When editing one note, you'll see a preview of other notes at the bottom:
This helps you remember what else you've written without switching notes.
Character CountingΒΆ
The app tracks character counts for each note:
Why Character Count Matters:
- Track note length over time
- Identify substantial vs. brief notes
- Monitor your writing habits
Timestamp TrackingΒΆ
Every note tracks when it was last modified:
Full Timestamp in JSON:
The JSON file includes full ISO 8601 timestamps:
This precision is useful for:
- Sorting notes chronologically
- Understanding your writing patterns
- Data analysis and visualization
Backup SystemΒΆ
The app includes an automatic backup system to prevent data loss:
How It Works:
- Before saving, the app creates
user_notes.json.backup - New content is written to
user_notes.json - If save succeeds, backup is deleted
- If save fails, backup is restored automatically
Manual Backup Recovery:
If something goes wrong and you have a .backup file:
# Check for backup
ls -la data/user_notes.json*
# Restore from backup
cp data/user_notes.json.backup data/user_notes.json
Best PracticesΒΆ
Note OrganizationΒΆ
Strategies for Multiple Notes:
- By Topic:
- "Career Insights"
- "Education Reflections"
-
"Personal Life Patterns"
-
By Time Period:
- "2020-2023 Analysis"
- "Current Goals (2025)"
-
"Long-term Vision"
-
By Purpose:
- "Meeting Notes"
- "Timeline Review Sessions"
- "Pattern Analysis"
Writing TipsΒΆ
Effective Note-Taking:
β Do:
- Date your entries within the content ("Nov 15, 2025: Noticed...")
- Use markdown formatting for structure (headings, lists, bold)
- Reference specific timeline events by name/date
- Capture "why" insights, not just "what" facts
- Review and update notes periodically
β Don't:
- Duplicate timeline event data (it's already in the events)
- Use notes as a to-do list (use external task manager)
- Store sensitive credentials or passwords
- Let notes grow excessively long (split into multiple notes)
Example Well-Structured Note:
# Career Patterns Analysis
Last Updated: November 15, 2025
## Key Observations
### Role Changes (Every ~2 Years)
- 2018: Started at StartupCo β 2020: Moved to TechCorp
- 2020: Junior Dev β 2022: Senior Dev β 2024: Team Lead
- Pattern: Growth happens after major learning investment
### Education β Promotion Correlation
- AWS Cert (2019) β Promotion (6 months later)
- ML Course (2021) β New role (4 months later)
- Insight: Certifications accelerate career transitions
## Future Actions
- [ ] Pursue management certification (2026)
- [ ] Target next role change (2027)
- [ ] Focus on leadership skills
## Questions to Explore
- Why do I change roles every 2 years?
- Is this sustainable long-term?
- What patterns do successful leaders follow?
TroubleshootingΒΆ
Note Not Saving?ΒΆ
Symptoms: - Click "Save Note" but content doesn't persist - No success message appears - Note disappears after refresh
Solutions:
-
Check file permissions:
-
Check disk space:
-
Check for corruption:
-
Look for error messages:
- Check Streamlit console output
- Look for red error alerts in the app
Finding Your Notes FileΒΆ
Can't locate user_notes.json?
# Search from ChronoScope root
find . -name "user_notes.json"
# Expected output:
# ./data/user_notes.json
File doesn't exist yet:
The file is created the first time you save a note. If you haven't saved any notes yet, the file won't exist.
Recovering Deleted NotesΒΆ
Option 1: Use Automatic Backup
Check for .backup file immediately after deletion:
Backup Timing
The .backup file only exists during the save operation. After a successful save, it's deleted. Act quickly if you need to recover!
Option 2: Manual Backups
If you made manual backups (see Backing Up Your Notes):
Option 3: Time Machine / System Backups
Migrating Notes to New InstallationΒΆ
Moving notes to a new computer:
-
Export from old machine:
-
Transfer the file:
- USB drive
- Cloud storage (Google Drive, Dropbox)
- Email to yourself
-
Git (if not in
.gitignore) -
Import to new machine:
-
Verify:
- Start ChronoScope
- Check that all notes appear in the dropdown
Backing Up Your NotesΒΆ
Manual Backup ScriptΒΆ
Create a simple backup script:
#!/bin/bash
# save as: backup_notes.sh
BACKUP_DIR=~/chronoscope-backups
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
cp data/user_notes.json $BACKUP_DIR/user_notes_$DATE.json
echo "β
Backup saved: $BACKUP_DIR/user_notes_$DATE.json"
# Keep only last 10 backups
ls -t $BACKUP_DIR/user_notes_*.json | tail -n +11 | xargs rm -f
Make executable:
# save as: backup_notes.py
import shutil
from datetime import datetime
from pathlib import Path
backup_dir = Path.home() / "chronoscope-backups"
backup_dir.mkdir(exist_ok=True)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
source = Path("data/user_notes.json")
dest = backup_dir / f"user_notes_{timestamp}.json"
if source.exists():
shutil.copy(source, dest)
print(f"β
Backup saved: {dest}")
else:
print("β No notes file found to backup")
Run:
Automated Backup ScheduleΒΆ
Using cron (macOS/Linux):
# Edit crontab
crontab -e
# Add line (backup daily at 2am)
0 2 * * * cd /path/to/chronoscope && ./backup_notes.sh
Using Task Scheduler (Windows):
- Open Task Scheduler
- Create Basic Task
- Set trigger (e.g., Daily at 2:00 AM)
- Action: Start a program
- Program:
python - Arguments:
C:\path\to\chronoscope\backup_notes.py
Cloud Sync for BackupsΒΆ
Sync backup directory to cloud:
# Example: Dropbox sync
mkdir -p ~/Dropbox/chronoscope-backups
ln -s ~/Dropbox/chronoscope-backups ~/chronoscope-backups
# Now backups automatically sync to Dropbox
./backup_notes.sh
Don't Sync the Main File
Avoid syncing data/user_notes.json directly to cloud storage while the app is running. This can cause sync conflicts. Instead, sync the backup directory only.
Privacy & SecurityΒΆ
Local Storage OnlyΒΆ
Your notes are stored only on your computer:
- β Not sent to any cloud service
- β Not transmitted to OpenAI API
- β Not included in any telemetry
- β Completely under your control
Protecting Sensitive NotesΒΆ
If your notes contain sensitive information:
# Restrict file permissions (you only)
chmod 600 data/user_notes.json
# Use OS-level encryption
# macOS: FileVault
# Windows: BitLocker
# Linux: LUKS/dm-crypt
Version Control ConsiderationsΒΆ
The .gitignore includes data/user_notes.json by default:
Before Committing to Git
Always verify your notes file is ignored:
FAQΒΆ
How many notes can I create?
There's no hard limit. The system supports dozens of notes comfortably. If you have 50+ notes, consider archiving old ones to separate files.
What's the maximum note length?
No enforced limit, but keep notes under 10,000 characters for best performance. For longer content, split into multiple notes by topic.
Can I use Markdown in notes?
Yes! Write Markdown syntax in the text area. While the app shows plain text, you can view formatted Markdown by opening the JSON file in a Markdown viewer or converting it to HTML.
Do notes support rich text formatting?
Not in the Streamlit UI, but you can use Markdown syntax for structure (headings, lists, bold) and view it formatted outside the app.
Can I search within notes?
Not in the current UI. Use external tools:
Why isn't there auto-save?
Manual save gives you control over when changes are persisted. This prevents accidental overwrites and lets you discard unwanted edits by refreshing the page.
Can multiple people share notes?
Each ChronoScope installation has its own user_notes.json. To share notes: 1. Export the JSON file 2. Send to collaborator 3. They manually merge content into their file
Are notes backed up automatically?
Only temporarily during save operations (.backup file). Set up your own regular backup routine (see Backing Up Your Notes).
Related DocumentationΒΆ
- π Timeline Events - Understanding timeline data vs. notes
- π Privacy & Security - Data storage and security
- π€ Export & Sharing - Exporting timeline and notes data
- π οΈ Architecture Guide - Technical details for developers
You're Ready!
You now understand how ChronoScope's notes feature works, where your data is stored, and how to manage it effectively. Start capturing your timeline insights today!
Have questions or suggestions for the notes feature?
- π¬ Join Community Discussions
- π Report Issues