The .jak file is a portable AI identity format. Your personality, context, and preferences
in one file that works with any AI tool — LM Studio, Open WebUI, Ollama, and more.
Your data. Your file. No lock-in.
Every AI tool today is a walled garden. Your ChatGPT memory lives in ChatGPT. Your Claude Projects live in Claude. There's no way to take your AI identity with you.
The .jak file changes that. It's a portable format that stores who you are — your personality, your context, your preferences — in a file YOU own. Use it with any AI tool. Switch tools without starting over. Your identity travels with you.
A .jak file is a UTF-8 encoded JSON document with the extension .jak.
It contains structured information about a person that AI systems can use to personalize interactions.
The format is designed to be:
{
"jak_version": "2.0", // Required: Format version
"created_at": "2026-03-18T...", // ISO 8601 timestamp
"source": "chatgpt_extraction", // How profile was created
"identity": { ... }, // Required: Core identity info
"personality": { ... }, // Traits and values
"working_style": { ... }, // Work preferences
"communication": { ... }, // Communication preferences
"expertise": [ ... ], // Skills array
"focus": { ... }, // Current priorities
"relationships": { ... }, // Social context
"emotional": { ... }, // Emotional patterns
"health": { ... }, // Lifestyle info
"technology": { ... }, // Tech environment
"financial": { ... }, // Business context
"memories": { ... }, // Key facts/people/places
"gaps": [ ... ], // Areas to learn more
"verified_by_user": true, // User reviewed profile
"verified_at": "2026-03-18T..." // When verified
}
| Field | Type | Description |
|---|---|---|
jak_version |
string | Format version. Must be "2.0" for this spec. |
identity |
object | Core identity information. See Identity section. |
identity.display_name |
string | User's full name or display name. REQUIRED |
The identity object contains core information about who the person is.
| Field | Type | Description |
|---|---|---|
display_name |
string | Full name or display name REQUIRED |
preferred_name |
string | How user prefers to be addressed (first name, nickname) |
roles |
string[] | Professional roles or occupations |
languages |
string[] | Languages spoken |
nationality |
string | Nationality or cultural context |
one_liner |
string | Short self-description or tagline |
bio |
string | Longer biography |
location |
object | Contains city and country strings |
When extracting a .jak profile from ChatGPT, the following prompt format is used to generate structured output that maps to the .jak schema:
## IDENTITY Name: [full name] Preferred name: [how to address] Location: [city, country] Nationality / cultural context: [context] Languages: [comma-separated] Roles: [comma-separated] One-liner: [short description] Bio: [longer description] ## PERSONALITY Core traits: - [trait] - [notes] Thinking style: [description] Decision making: [description] ...
The parser handles markdown formatting that ChatGPT may add (bold, bullets, etc.) and extracts key-value pairs to build the .jak structure.
The .jak format is designed to work with any AI tool that accepts system prompts or persona configuration. Your .jak file is portable — use it anywhere.
| Tool | Status | How to Use |
|---|---|---|
| LM Studio | Verified | Paste .jak content into System Prompt field |
| Open WebUI | Verified | Create Model persona with .jak content as system prompt |
| Ollama | Compatible | Include in Modelfile SYSTEM section |
| Jan | Compatible | Add to thread system prompt settings |
| GPT4All | Compatible | Paste into system prompt in chat settings |
| LibreChat | Compatible | Set as conversation system prompt |
| Any LLM API | Compatible | Include .jak content as system message in API calls |
Verified = tested and confirmed working. Compatible = uses standard system prompt pattern.
| Version | Date | Changes |
|---|---|---|
2.0 |
March 2026 | Current version. Added markdown parsing, field aliases, verification flags. |
1.0 |
February 2026 | Initial release. |
A valid .jak file must:
jak_version set to "2.0"identity object with at least display_name.jakOptional sections may be omitted entirely. Empty arrays and empty strings are allowed.