Skip to main content

priv-goals

A privacy-focused goal-tracking application that runs locally on your machine. Track your goals, habits, and tasks with the help of AI, without sharing your data with third-party servers (NOTE: depends on your chosen configuration).

[UNDER DEVELOPMENT] This project is currently under development and not yet ready for active use. Bare functionality is implemented and available for exploration. Please check back later for updates.

Features

  • 🔒 Privacy First: All data stored locally by default
  • 🤖 AI-Powered: Uses your preferred LLM for natural interaction
  • 📊 Flexible Storage: Choose between local CSV or Google Sheets
  • 🎯 Goal Tracking: Track status, progress, and completion
  • ⏰ Duration Tracking: Monitor expected vs actual completion time
  • 📝 Notes & Updates: Add context and track progress
  • 🔑 Secure Credentials: All sensitive keys stored in system keyring

Installation

Quick Install

pip install priv-goals
priv-goals --setup

Requirements

  • Python 3.8 or higher
  • An API key for your preferred LLM provider (OpenAI, Anthropic, etc.)
  • For Google Sheets storage: Google Cloud service account credentials
  • System keyring (usually pre-installed on most operating systems)

Detailed Installation Steps

  1. Create a virtual environment (recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  2. Install from PyPI:

    pip install priv-goals
    
  3. Run the setup wizard:

    priv-goals --setup
    

    The setup wizard will guide you through:

    • Choosing your LLM provider (OpenAI, Anthropic, Ollama, or custom)
    • Securely storing your API key in the system keyring
    • Selecting and configuring your model preferences
    • Choosing your storage backend (local CSV or Google Sheets)
    • Setting up any additional required credentials
  4. Start the application:

    priv-goals
    

Configuration

Configuration is stored in ~/.priv-goals/config.yml. Sensitive credentials like API keys and service account details are stored securely in your system's keyring.

Example configuration:

provider: openai
api_key: $KEYRING_OPENAI_API_KEY
api_base: https://api.openai.com/v1
model: gpt-4
storage_type: csv

Storage Options

Local CSV (Default)

  • Data stored in ~/.priv-goals/goals.csv
  • Complete privacy, no external services required
  • Suitable for personal use

Google Sheets

  • Requires Google Cloud service account credentials
  • Great for team collaboration
  • Accessible from multiple devices
  • To set up:
    1. Create a Google Cloud project
    2. Enable Google Sheets API
    3. Create a service account and download credentials
    4. Run priv-goals --setup and select Google Sheets storage
    5. Your credentials will be securely stored in the system keyring

Usage

  1. Start the application:

    priv-goals
    
  2. Access the web interface: Open your browser and navigate to http://localhost:7860

  3. Interact naturally:

    • "Add a new goal to read a book by next month"
    • "Show me my current goals"
    • "Mark the reading goal as complete"
    • "Add a note to my exercise goal"

Command Line Reference

Help Message

usage: priv-goals [-h] [--setup] [--port PORT] [--config CONFIG] [--debug]
                  [--log-dir LOG_DIR] [--version]

Privacy-focused goal tracking application with AI assistance.

options:
  -h, --help           show this help message and exit
  --setup              Run the interactive setup wizard
  --port PORT          Port to run the web interface on (default: 7860)
  --config CONFIG      Path to configuration file (default: ~/.priv-goals/config.yml)
  --debug              Enable debug mode with additional logging
  --log-dir LOG_DIR    Directory for log files (default: ~/.priv-goals/logs)
  --version           Show program's version number and exit

Examples:
  priv-goals                 # Start the application
  priv-goals --setup         # Run the setup wizard
  priv-goals --port 8080     # Start on specific port
  priv-goals --config ~/my-config.yml  # Use custom config file

Common Commands

  1. View help:

    priv-goals --help
    
  2. Run setup wizard:

    priv-goals --setup
    
  3. Start on custom port:

    priv-goals --port 8080
    
  4. Enable debug logging:

    priv-goals --debug
    
  5. Use custom config file:

    priv-goals --config ~/custom-config.yml
    
  6. Check version:

    priv-goals --version
    

Security Notes

  • All sensitive credentials (API keys, service account details) are stored in your system's secure keyring
  • No credentials are stored in plain text
  • Temporary credential files are automatically cleaned up
  • Local CSV files are stored in your home directory
  • Google Sheets credentials are only used when needed and stored securely

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Roadmap

1️⃣ Goal Management Enhancements

  • Delete/remove goals from the tracker.
  • Rename goals for better organization.
  • Revert a completed goal back to "in progress."
  • Allow users to enter a duplicate goal (e.g., "read a book") if a similar goal was previously completed.
  • Allow the user to "un-delete" a goal that was removed by mistake. (Partially working thanks to assistant's memory.)
  • Allow multiple lists (e.g., short-term, long-term, personal, work, etc.) for better organization.
  • Implement a "priority" column for goals, so users can prioritize their tasks.

2️⃣ Time Tracking & Scheduling

  • Track timestamps: When a goal is created, when it is completed, and how long it took.
  • Calculate and display average completion time for goals.
  • Add an "Expected Duration" column, which can be optional or open-ended (e.g., "some time next week").
  • Prompt the user for an expected duration when adding a goal if they don’t specify one (but allow them to decline).

3️⃣ AI & Usability Improvements

  • Handle edge cases (e.g., a goal named "complete" should not confuse the system).
  • Implement semantic goal identification, so similar goals (e.g., "read a book" vs. "read any book") are recognized as the same.
  • Make notes about the current status of a goal, which the AI can process and provide feedback on.
  • Implement local storage for goals, so the user can access their goals privately offline.
  • Implement alternate LLMs (e.g., local models) for more flexibility.
    • Implement alternate LLMs using liteLLM - works for proprietary models, e.g., Claude.
    • Implement local LLMs.
  • Test the app's ability to edit and update goals (e.g., changing name of a goal).
  • Allow user to modify spreadsheet schema (e.g., add new columns for additional information).

4️⃣ User Experience & UI

  • Create a persistent view of the goal list, instead of requiring the user to ask to view it each time.
  • Improve the logic for refreshing the goal list after a new goal is added or an existing goal is updated.
  • Display an initial welcome message from the AI, describing the available functionality of the app.
  • Implement LLM-switching functionality to allow users to switch between different models.

5️⃣ Debugging & Logging

  • Create a logging system to record every conversation during development for debugging purposes.

6️⃣ Codebase & Documentation

7️⃣ Security & Privacy

  • Implement authentication (optional) for local CSV storage.

8️⃣ CLI

  • Add command to print configuration to the CLI.

License

This project is licensed under the GNU Affero General Public License (AGPLv3).


Contributing

Contributions are welcome! Please fork the repository and submit a pull request for review.

Release files for priv-goals 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for priv-goals 0.0.5
File Size Uploaded
priv_goals-0.0.5.tar.gz 50.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for priv-goals 0.0.5
File Interpreter ABI Platform
priv_goals-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 103.9 kB

Release files / priv_goals-0.0.5.tar.gz

Download URL priv_goals-0.0.5.tar.gz
Size 50.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3bdc7bce8f3ed32eab51150cc29d05c116f709902e3ee3e694dba507ee28f46c
BLAKE2b-256 checksum
How to use checksums
3fe2defda9f50212079d8c4c422805d7112ebc240724edc0e2ae2c22f5c680a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2025.

Transparency log

Release files / priv_goals-0.0.5-py3-none-any.whl

Download URL priv_goals-0.0.5-py3-none-any.whl
Size 53.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79c7fe036e3cf8e1bc5d2608249f2c841a522d49cf210ac2e02f46883c378701
BLAKE2b-256 checksum
How to use checksums
37cb1062199c08693b20b293ece01a84bbd425941500eef79da7723d24e19920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page