Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
cfbf065
feat(ai): add secure provider connections and streaming IPC
antonreshetov Sep 20, 2026
1ce0857
feat(ai): add contextual Markdown chat and provider settings
antonreshetov Sep 20, 2026
7f4c9aa
docs(ai): document provider setup and code chat
antonreshetov Sep 20, 2026
9c26695
feat(ai): add reviewable edits and resilient conversation flow
antonreshetov Sep 20, 2026
895ac0a
feat(ai): highlight and copy streamed code blocks
antonreshetov Sep 20, 2026
f23ecdb
docs(ai): explain editing and conversation recovery
antonreshetov Sep 20, 2026
6ccf815
fix(ai): align chat messages and simplify review status
antonreshetov Sep 20, 2026
5fba4c4
feat(ai): reuse snippet grammars and themes for chat code
antonreshetov Sep 20, 2026
171d169
fix(ai): recover from invalid tool calls and preserve conversation hi…
antonreshetov Sep 20, 2026
f55e3da
chore(dev): persist DevTools state across restarts
antonreshetov Sep 20, 2026
cb79807
feat(ai): add vault search and read tools for code notes and http
antonreshetov Sep 20, 2026
3439530
feat(ai): add removable context attachments and compact chat composer
antonreshetov Sep 20, 2026
e9d956b
feat(ai): share assistant tabs across space inspectors
antonreshetov Sep 20, 2026
167d43a
docs(ai): describe shared context and vault search behavior
antonreshetov Sep 20, 2026
83bd8c2
style(ai): minimize context attachment chips
antonreshetov Sep 20, 2026
b45dd4b
feat(ai): plan multilingual vault searches and rank matches
antonreshetov Sep 20, 2026
9a4be4a
fix(ai): resolve vault scope before answering and show source results
antonreshetov Sep 20, 2026
a4a4843
docs(ai): explain retrieval scope and verified search results
antonreshetov Sep 20, 2026
8783635
feat(ai): link vault references in responses and search results
antonreshetov Sep 20, 2026
afedb97
feat(ai): add response footer with actions and timestamps
antonreshetov Sep 20, 2026
7971d8b
refactor(ai): collapse search results and hide technical details
antonreshetov Sep 20, 2026
9a3f5b1
fix(ai): avoid repeated vault links and record introductions
antonreshetov Sep 20, 2026
9b02733
fix(ai): open and focus chat without toggling inspector tabs
antonreshetov Sep 20, 2026
2741864
feat(ai): add View menu command and chat keyboard shortcut
antonreshetov Sep 20, 2026
e97336c
fix(http): refresh descriptions when switching requests
antonreshetov Sep 21, 2026
aa65e91
feat(ai): define HTTP context and response replay contracts
antonreshetov Sep 21, 2026
6b8ce8c
fix(http): expose sanitized execution traces and redirect limits
antonreshetov Sep 21, 2026
07ff09a
fix(ai): support Responses API and redacted diagnostics
antonreshetov Sep 21, 2026
6ab6356
feat(ai): analyze HTTP drafts and review proposed assertions
antonreshetov Sep 21, 2026
ffcde17
fix(ai): separate HTTP evidence from inferred contracts
antonreshetov Sep 21, 2026
761b03d
feat(ai): require sources for HTTP assertion expectations
antonreshetov Sep 21, 2026
51e5987
fix(ai): render HTTP proposals from validated checks
antonreshetov Sep 21, 2026
1b63eeb
fix(ai): ground HTTP analysis and validate reviewable checks
antonreshetov Sep 21, 2026
2464bf9
fix(ai): redact provider continuation signatures from logs
antonreshetov Sep 21, 2026
450d3a4
feat(ai): add native SDK adapters for five cloud providers
antonreshetov Sep 21, 2026
7a7e336
refactor(ai): scope assistant instructions to available tools
antonreshetov Sep 21, 2026
336ce9e
fix(ai): persist model catalogs and unify connection settings
antonreshetov Sep 21, 2026
f5bd338
feat(ai): add configurable user instructions
antonreshetov Sep 21, 2026
1515301
docs(ai): document assistant across Code Notes and HTTP
antonreshetov Sep 21, 2026
50bf640
fix(ai): group providers and clarify API key labels
antonreshetov Sep 21, 2026
cd0833f
docs(ai): use consistent API key terminology
antonreshetov Sep 21, 2026
85aac15
fix(ai): preserve tool results and handle provider failures
antonreshetov Sep 22, 2026
daf5b21
feat(ai): add validated workspace operations and undo
antonreshetov Sep 22, 2026
064efca
feat(ai): connect workspace actions to chat and review
antonreshetov Sep 22, 2026
d048fa3
fix(navigation): refresh folders before opening inbox links
antonreshetov Sep 22, 2026
bb7800b
fix(ai): read binary response kind from the HTTP snapshot
antonreshetov Sep 22, 2026
eff5ed4
docs(ai): describe workspace creation review and undo
antonreshetov Sep 22, 2026
36ab994
feat(ai): improve proposal reviews with structured diffs and tables
antonreshetov Sep 22, 2026
b720e07
refactor(http): share URL query handling across processes
antonreshetov Sep 22, 2026
fd0b30e
feat(http): share owned execution and redact AI activity data
antonreshetov Sep 22, 2026
04dd4cd
feat(ai): extend workspace lifecycle and HTTP data operations
antonreshetov Sep 22, 2026
c1e96c0
feat(import): report dialog outcomes to AI action sessions
antonreshetov Sep 22, 2026
b07fad9
feat(ai): add reviewed HTTP and WebSocket action execution
antonreshetov Sep 22, 2026
480f77d
feat(ai): integrate notes editing and reviewed actions with chat
antonreshetov Sep 22, 2026
0236a64
docs(ai): describe notes and HTTP action capabilities
antonreshetov Sep 22, 2026
14d21c5
chore: merge main into feat/ai-assistant
antonreshetov Sep 23, 2026
3e855f1
fix(ai): format HTTP action preview and result JSON
antonreshetov Sep 23, 2026
b8f89a6
fix(ai): move workspace context controls into context menu
antonreshetov Sep 23, 2026
34e43e2
refactor(ui): use icons and a unified inspector label for sidebar tabs
antonreshetov Sep 23, 2026
bdb8001
test(http): add isolated request journals for assistant QA
antonreshetov Sep 24, 2026
3666441
fix(http): preserve execution identity and runtime lifecycle state
antonreshetov Sep 24, 2026
7a5863f
feat(ai): execute user workflows with task control and undo
antonreshetov Sep 24, 2026
1d5b6ae
docs(ai): describe assistant workflows and task controls
antonreshetov Sep 24, 2026
845cdb3
docs(ai): simplify assistant guide and update feature overviews
antonreshetov Sep 25, 2026
700d209
feat(ui): add disclosure, status and shimmer primitives
antonreshetov Sep 25, 2026
c0f4309
feat(ai): clarify action cards and standardize status feedback
antonreshetov Sep 25, 2026
81af786
fix(ai): simplify context display and improve panel layout
antonreshetov Sep 25, 2026
f0cee07
feat(playground): add interactive AI panel scenarios and checks
antonreshetov Sep 25, 2026
a51cb30
fix(http): align inspector header with workspace divider
antonreshetov Sep 25, 2026
f47c39d
fix(ai): display setup hint as a warning card
antonreshetov Sep 25, 2026
6b885cf
fix(ai): keep settings beside new chat in all panel layouts
antonreshetov Sep 25, 2026
aac2def
fix(ai): toggle assistant panel with keyboard shortcut
antonreshetov Sep 25, 2026
a33745e
docs(website): add AI assistant section to homepage
antonreshetov Sep 25, 2026
e49b0f1
fix(preferences): simplify AI setup and standardize control heights
antonreshetov Sep 25, 2026
0e7c9c2
feat(ai): add persistent global prompt history
antonreshetov Sep 25, 2026
0be4a94
feat(ai): show steering messages above the composer
antonreshetov Sep 25, 2026
3321dc1
fix(ai): place caret at end when browsing prompt history
antonreshetov Sep 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A free, open-source developer workspace.
<p align="center">
<strong>Snippets, notes, HTTP requests, calculations, drawings, and dev tools in one local-first app.</strong>
<br>
Your data stays on your machine as plain Markdown files.
Your workspace is stored locally as plain Markdown files.
</p>

<p align="center">
Expand Down Expand Up @@ -177,6 +177,17 @@ Save web content from Chrome, Firefox, or Safari into the local massCode app.
- Save pages or links as HTTP `GET` requests
- Connect through the local Integration API with an API token

### AI Assistant

Ask the built-in assistant to carry out tasks across Code, Notes, and HTTP using your own AI provider account or a local model.

- Edit and format snippets, organize notes, and update tasks
- Find records across your vault and use them in a conversation
- Run HTTP collections with confirmation, explain failed checks, and save reports in Notes
- Request a preview before edits, adjust a task while it runs, and undo changes that support Undo

Cloud providers receive the context used for the task; use a model running on your computer for local processing. See the [AI Assistant guide](https://masscode.io/documentation/ai/) for setup and examples.

### MCP Integration

Connect Codex, Claude Code, Cursor, or VS Code Copilot to your massCode vault through the built-in MCP server.
Expand Down
2 changes: 2 additions & 0 deletions docs/website/.vitepress/components/TheHome.vue
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<script setup lang="ts">
import HomeAi from './home/HomeAi.vue'
import HomeClosing from './home/HomeClosing.vue'
import HomeDeveloperTools from './home/HomeDeveloperTools.vue'
import HomeHero from './home/HomeHero.vue'
Expand All @@ -14,6 +15,7 @@ import HomeWorkflows from './home/HomeWorkflows.vue'
<HomeHero />
<HomeShowcase />
<HomeWorkflows />
<HomeAi />
<HomeMcp />
<HomeDeveloperTools />
<HomeLocal />
Expand Down
211 changes: 211 additions & 0 deletions docs/website/.vitepress/components/home/HomeAi.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
<script setup lang="ts">
import { ArrowRight, Code2, FileText, Globe, Sparkles } from 'lucide-vue-next'
import { withBase } from 'vitepress'
import HomeCard from './HomeCard.vue'

const workflows = [
{
icon: Code2,
title: 'Edit your code',
description: 'Update snippets and fragments using the code you have open.',
prompt:
'Add a five-second timeout to this function and update the usage example.',
},
{
icon: FileText,
title: 'Organize your notes',
description:
'Find records, rewrite notes, and update task properties across your vault.',
prompt: 'Find overdue tasks and move them to Follow-up.',
},
{
icon: Globe,
title: 'Test your APIs',
description:
'Add checks, run collections with your confirmation, and investigate failed requests.',
prompt:
'Run this collection, explain the failed checks, and save a report in Notes.',
},
]
</script>

<template>
<section
id="ai-assistant"
class="ai-section"
aria-labelledby="ai-title"
>
<header>
<p class="eyebrow">
<Sparkles
:size="16"
aria-hidden="true"
/> BUILT-IN AI ASSISTANT
</p>
<h2 id="ai-title">
From a question to a finished task.
</h2>
<p class="intro">
Ask massCode to edit code, organize notes, or work through an HTTP
workflow. Find what you need in your vault and put it to work in the
same conversation.
</p>
</header>
<div class="workflows">
<HomeCard
v-for="workflow in workflows"
:key="workflow.title"
as="article"
class="workflow"
glow="left"
>
<component
:is="workflow.icon"
:size="24"
class="workflow-icon"
aria-hidden="true"
/>
<h3>{{ workflow.title }}</h3>
<p>{{ workflow.description }}</p>
<blockquote>{{ workflow.prompt }}</blockquote>
</HomeCard>
</div>
<div class="details">
<div>
<h3>Your choice of model.</h3>
<p>
Connect OpenAI, Anthropic, Gemini, DeepSeek, Mistral, or xAI with your
own API key. Or use a model running on your computer with Ollama or LM
Studio. Cloud API usage is billed by your provider.
</p>
</div>
<div>
<h3>Apply changes or preview first.</h3>
<p>
Have the assistant make edits directly, or ask for a preview first.
Sending HTTP requests requires your confirmation.
</p>
</div>
</div>
<a
class="guide-link"
:href="withBase('/documentation/ai')"
>
Get started with AI Assistant <ArrowRight
:size="16"
aria-hidden="true"
/>
</a>
</section>
</template>

<style scoped>
.ai-section {
margin-top: 120px;
scroll-margin-top: 96px;
}
header {
text-align: center;
margin-bottom: 40px;
}
.eyebrow {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
margin-bottom: 18px;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.12em;
color: var(--home-highlight);
}
h2 {
font-size: clamp(36px, 4.5vw, 58px);
line-height: 1.08;
letter-spacing: -0.03em;
text-wrap: balance;
}
.intro {
max-width: 720px;
margin: 18px auto 0;
font-size: 18px;
line-height: 1.65;
color: var(--home-muted);
}
.workflows {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
}
.workflow {
display: flex;
flex-direction: column;
padding: 28px;
}
.workflow-icon {
color: var(--home-highlight);
margin-bottom: 24px;
}
h3 {
font-size: 21px;
line-height: 1.3;
letter-spacing: -0.02em;
}
.workflow > p,
.details p {
margin-top: 12px;
color: var(--home-muted);
font-size: 15px;
line-height: 1.7;
}
.workflow > p {
flex: 1;
}
blockquote {
margin: 24px 0 0;
padding: 16px;
border: 1px solid var(--vp-c-divider);
border-radius: 12px;
background: var(--vp-c-bg);
font-size: 14px;
line-height: 1.65;
}
.details {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 48px;
margin-top: 36px;
}
.guide-link {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 44px;
margin-top: 18px;
color: var(--home-highlight);
font-size: 15px;
}
.guide-link:hover {
text-decoration: underline;
text-underline-offset: 4px;
}
.guide-link:focus-visible {
outline: 2px solid var(--home-highlight);
outline-offset: 5px;
}
@media (max-width: 760px) {
.ai-section {
margin-top: 64px;
}
.workflows,
.details {
grid-template-columns: minmax(0, 1fr);
}
.details {
gap: 24px;
}
.intro {
font-size: 17px;
}
}
</style>
6 changes: 3 additions & 3 deletions docs/website/.vitepress/components/home/HomeMcp.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import HomeCard from './HomeCard.vue'
>
<header>
<h2 id="mcp-title">
A direct line to your AI agent.
Connect your external AI agent.
</h2>
<p>
Let your agent find saved snippets, read project notes, and run HTTP
requests through MCP.
Already working in an AI client? Let it find saved snippets, read
project notes, and run HTTP requests through MCP.
</p>
</header>
<HomeCard
Expand Down
1 change: 1 addition & 0 deletions docs/website/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ export default defineConfig({
{ text: 'Sync', link: '/documentation/sync' },
{ text: 'Imports', link: '/documentation/imports' },
{ text: 'Clipper', link: '/documentation/clipper' },
{ text: 'AI Assistant', link: '/documentation/ai' },
{ text: 'MCP', link: '/documentation/mcp' },
{ text: 'Appearance', link: '/documentation/themes' },
],
Expand Down
Loading