SkillAgentSearch skills...

Timelinize

Store your data from all your accounts and devices in a single cohesive timeline on your own computer

Install / Use

/learn @timelinize/Timelinize
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<a href="https://timelinize.com"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/timelinize/timelinize/main/frontend/resources/images/logo-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/timelinize/timelinize/main/frontend/resources/images/logo-light.svg"> <img src="https://raw.githubusercontent.com/timelinize/timelinize/main/frontend/resources/images/timelinize-light.svg" alt="Timelinize" width="400"> </picture> </a> <hr>

godoc   Discord

Organize your photos & videos, chats & messages, location history, social media content, contacts, and more into a single cohesive timeline on your own computer where you can keep them alive and own them forever.

Timelinize lets you import your data from practically anywhere: your computer, phone, online accounts, GPS-enabled radios, various apps and programs, contact lists, cameras, and more.

Join our Discord to discuss!

[!TIP]
Screenshots and videos here portray real timelines containing real data in demo mode, which obfuscates the sensitive information. Images are blurred, names and other identifiers are replaced with random data, and some locations are faked. Your timeline will show the real data.

Videos

90 second intro:

Timelinize Intro

30 minute tour:

Timelinize Tour

Screenshots

[!NOTE]
The UI is still evolving, so these screenshots are outdated, but they give you the idea.

| | | | ---- | ---- | WIP Dashboard WIP dashboard. Very WIP. The bubble chart is particularly interesting as it shows you what kinds of data are most common at which times of day throughout the years. | Timeline view The classic timeline view is a combination of all data grouped by types and time segments for reconstructing a day or other custom time period. Item view Viewing an item shows all the information about it, regardless of type: text, photo, live photo, video, location, etc. | File picker I had to make a custom file picker since browser APIs are too limiting. This is how you'll import most of your data into your timeline, but this flow is being revised soon. 3D map The large map view is capable of 3D exploration, showing your memories right where they happened with a color-coded path that represents time. | Map showing non-geolocated data Because Timelinize is entity-aware and supports multiple data sources, it can show data on a map even if it doesn't have geolocation information. That's what the gray dots or pins represent. In this example, a text message was received while at church, even though it doesn't have any geolocation info associated with it directly. Entities Timelinize treats entities (people, pets/animals, organizations, etc.) as first-class data points which you can filter and organize. | Merge entities Timelinize will automatically recognize the same entity across data sources with enough information, but if it isn't possible automatically, you can manually merge entities with a click. Conversations Conversations are aggregated across data sources that have messaging capabilities. They become emergent from the database by querying relationships between items and entities. | Conversation view In this conversation view, you can see messages exchanged with this person across both Facebook and SMS/text message are displayed together. Reactions are also supported. Gallery A gallery displays photos and videos, but not just those in your photo library: it includes pictures and memes sent via messages, photos and videos uploaded to social media, and any other photos/videos in your data. You can always filter to drill down.

How it works

  1. Obtain your data. This usually involves exporting your data from apps, online accounts, or devices. For example, requesting an archive from Google Takeout. (Apple iCloud, Facebook, Twitter/X, Strava, Instagram, etc. all offer similar functionality for GDPR compliance.) Do this early/soon, because some services take days to provide your data.
  2. Import your data using Timelinize. You don't need to extract or decompress .tar or .zip archives; Timelinize will attempt to recognize your data in its original format and folder structure. All the data you import is indexed in a SQLite database and stored on disk organized by date -- no obfuscation or proprietary formats; you can simply browse your files if you wish.
  3. Explore and organize! Timelinize has a UI that portrays data using various projections and filters. It can recall moments from your past and help you view your life more comprehensively. (It's a great living family history tool.)
  4. Repeat steps 1-3 as often as desired. Timelinize will skip any existing data that is the same and only import new content. You could do this every few weeks or months for busy accounts that are most important to you.

[!CAUTION] Timelinize is in active development and is still unstable. The schema is still changing, necessitating starting over from a clean slate when updating. Always keep your original source data. Expect to delete and recreate your timelines as you upgrade to new versions/builds.

Download and run

Download the latest release for your platform.

See the website for installation instructions.

Develop

See our project wiki for instructions on compiling from source.

Command line interface

Timelinize has a symmetric HTTP API and CLI. When an HTTP API endpoint is created in the code, it automatically adds to the command line as well.

Run timelinize help (or go run main.go help if you're running from source) to view the list of commands, which are also HTTP endpoints. JSON or form inputs are converted to command line args/flags that represent the JSON schema or form fields.

<!-- <details> <summary>Wails UI info (no longer used)</summary> ## Wails v2 (native GUI) info The last commit that used Wails (v2) was b9b80838b2b92501139f2f0c5fab63921a7e6502. That can be used as a reference if we ever switch back to Wails. The last working commit that had Wails that was released as a dev preview was bcb0f732e01e5b0e34a142a35b658a1f328c4c6d. In July-August 2023 we transitioned away from Wails and went to a client/server model for stability and flexibility. Wails itself was great, the main problem was the poor performance of Webkit2GTK, even on Mac it was pretty bad (frequent crashes). The instructions below are preserved here for reference in case that comes in handy, though the commits above also have this in their READMEs: ### Development Run commands in the project root: #### Linux, macOS ```bash $ wails dev ``` #### Windows ```powershell $env:CC="zig cc"; $env:CXX="zig c++"; wails dev ``` Or, if cross-compiling: ```powershell > $env:CC="zig cc -target x86_64-windows"; $env:CXX="zig c++ -target x86_64-windows"; wails dev ``` </details> -->

Setup Development Environment

Dev Container setup is provided for easy development using GitHub Codespaces or Visual Studio Code with the DevContainers extension.

Getting started with VSCode

  1. Make sure you have the following installed:

  2. Open this project in VSCode

  3. Go to the Remote Explorer on Activity Bar

  4. Click on New Dev Container (+)

  5. Click on Open Current Folder in Container

This sets up a docker container with all the dependencies required for building this project. You can get started with contributing quickly.

Motivation and vision

(For roadmap, see issues tagged long-term 🔭.)

The motivation for this project is two-fold. Both press upon me with a sense of urgency, which is why I dedicated some nights and weekends to work on this.

  1. Connecting with my family -- both living and deceased -- is important to me and my close relatives. But I wish we had more insights into the lives of those who came before us. What was important to them? Where did they live / travel / spend their time? What lessons did they learn? How did global and local events -- or heck, even the weather -- affect them? What hardships did they endure? What would they have wanted to r
View on GitHub
GitHub Stars3.4k
CategoryDevelopment
Updated1d ago
Forks111

Languages

Go

Security Score

100/100

Audited on Apr 1, 2026

No findings