Documentation
Lucicoder
Lucicoder is the coding agent in Luciai Studio. It plans, edits files, runs commands, reads your errors and keeps going until the job is done — as far on its own as you allow.
Approval modes
The approval mode decides how far Lucicoder goes before it asks you. Switch at any moment — with /mode, for example /mode ask.
- Chat answers and explains. It touches nothing.
- Ask asks before every tool it wants to use.
- Agent reads and searches freely, and asks before it edits a file or runs a command.
- Auto works on its own — still inside the command denylist, still with a checkpoint for every turn.
Preview is a fifth way to work: edits are staged for your review instead of written. It is described below.
Diffs, checkpoints and undo
Every edit Lucicoder proposes is shown as a red-and-green diff before it is written.
Every turn is a checkpoint. One click reverts everything that turn changed, across every file it touched — so trying something is cheap.
For anything older, Local History keeps every save and every Lucicoder edit as a version outside the repository: a timeline, side-by-side diffs, labels and one-click restore. Open it from the command palette.
Preview mode
In Preview mode, Lucicoder's edits are staged instead of written. You review the multi-file diff — and can edit it — then apply or discard each file. A file that changed on disk after its edit was staged is flagged, so nothing is overwritten by surprise.
Two refactoring commands use the same review:
- Rename Symbol with Preview (Ctrl+F2) stages the language server's rename.
- Refactor with Lucicoder (preview) (Ctrl+Shift+R) drafts the request from your selection.
Commands and background tasks
A command Lucicoder runs is stopped after 120 seconds. Dev servers and watchers run as background tasks instead — Lucicoder starts, reads and stops them with run_background, task_output and task_stop — and /tasks lists them.
A hard denylist blocks dangerous commands in every mode, whatever the prompt says. Commands you trust can go on the project's “always allow” list.
Slash commands
Type / in the Lucicoder panel to see them all. The ones you will use most:
/init— Studies the project and writesLUCIAI.mdat its root: instructions Lucicoder reads on every turn./model <name>— Switches the model./mode <mode>— Sets the approval mode:chat,ask,agent,autoorpreview./mcp— Lists your MCP servers and their tools./mcp reloadrestarts them./tasks— Lists the background tasks Lucicoder started, such as dev servers and watchers./skills— Skills, commands and plugins: list, create and import them./native auto|on|off— Native function calling, or the universal XML grammar for models that need it./help— Shows every command.
Your own skills and Markdown commands appear in the same menu, as /their-name.
@file mentions
Mention a file with @ — for example @src/billing/total.ts — to put it in front of Lucicoder together with your message.
Sessions and context
Sessions are per project and per window. Each keeps its own agent memory, survives a restart of the IDE and resumes with its context.
Long sessions compress on their own, so they keep fitting the model's context window. Live language-server diagnostics are attached to every turn, so “fix the errors” just works.
For bigger jobs, Lucicoder keeps a live plan checklist, and can hand a focused part of the work to a subagent (spawn_agent) that has its own context.
Skills, commands and plugins
Lucicoder uses the layout Claude Code uses, so skill repositories, plugins and marketplaces made for it install unchanged — and what you write here works there.
Skills
A skill is a folder with a SKILL.md file — YAML front matter with a name and a description, then the instructions — and any files it needs. Lucicoder sees a one-line catalog of your skills and loads a skill's full text only when a task needs it; /name runs one directly.
Put project skills in .luciai/skills/<name>/SKILL.md inside the project, or in the same folder under your home directory for every project. Skills in .claude/skills are found too.
---
name: release-notes
description: Write release notes from the changes since the last tag
---
Read the Git history since the last tag. Group the changes into
Added, Changed and Fixed, in plain sentences, one line each.Commands
A command is a Markdown file in .luciai/commands/ (or .claude/commands/). Its name becomes a slash command, and $ARGUMENTS is replaced by what you type after it.
---
description: Find and fix a bug from its description
argument-hint: <what goes wrong>
---
Find the cause of this bug, fix it and add a test that fails without the fix:
$ARGUMENTSPlugins
A plugin bundles skills, commands and MCP servers in Claude Code's plugin layout. Manage skills, commands and plugins with /skills.
MCP servers
Model Context Protocol servers give Lucicoder more tools. Declare them in <project>/.luciai/mcp.json, in the format Claude Code and Claude Desktop use — you can copy an existing configuration as it is.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "D:/some/dir"],
"env": {}
},
"remote-example": {
"url": "https://mcp.example.com/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}- A local server has a
command, with optionalargsandenv; it runs on your machine and talks over stdio. - A remote server has a
urlinstead, with optionalheaders, and is reached over HTTP. "disabled": truekeeps a server in the file without starting it.
/mcp lists the servers and their tools, and /mcp reload restarts them after you edit the file. Lucicoder sees each tool as mcp__<server>__<tool>, and calls to them follow the same approval rules as commands.
Tokens in mcp.json
mcp.json is a file in your project. If a server needs a token in its headers or env, keep the file out of version control.
Still stuck? Ask on the support page or write to adeel.ahm1985@gmail.com.