Welcome to the Absolute Scenes wiki! This comprehensive guide covers everything you need to know about using and developing this professional scene-based book writing application.
Current Version: 1.4.22 | Author: Adam Short | License: MIT
Absolute Scenes is a professional desktop application designed specifically for authors who want a structured, scene-based approach to writing books. Unlike traditional word processors that treat your manuscript as one long document, Absolute Scenes organizes your work into chapters and scenes, making it easier to manage complex narratives, reorder content, and maintain focus on individual story elements.
Scene-based writing offers several advantages:
Absolute Scenes Setup x.x.x.exe from GitHub ReleasesC:\Program Files\Absolute Scenes\)Post-Installation:
absolute-scenes command is available in Command Prompt and PowerShell.book files are associated with Absolute Scenes (double-click to open)Absolute Scenes x.x.x.dmg from GitHub ReleasesPost-Installation:
absolute-scenes command is available in Terminal.book files open with Absolute Scenes by defaultUbuntu/Debian (.deb):
# Download the .deb package, then:
sudo dpkg -i absolute-scenes_x.x.x_amd64.deb
sudo apt-get install -f # Install dependencies if needed
RHEL/Fedora (.rpm):
# Download the .rpm package, then:
sudo rpm -i absolute-scenes-x.x.x.x86_64.rpm
Universal AppImage:
# Download the AppImage, then:
chmod +x Absolute-Scenes-x.x.x.AppImage
./Absolute-Scenes-x.x.x.AppImage
Post-Installation:
absolute-scenes command.book files are associated with the applicationAbsolute Scenes includes full command-line support:
# Launch the application
absolute-scenes
# Open a specific book file
absolute-scenes /path/to/your/book.book
# Open the last book you were working on
absolute-scenes --last
# Show version information
absolute-scenes --version
# Show help
absolute-scenes --help
Ctrl/Cmd + NCtrl/Cmd + SThe Absolute Scenes interface has several key areas:
Main Panels:
Toolbar Buttons:
Status Bar (bottom): Shows save status, word count, and sync status
Chapter Operations:
Scene Operations:
Scenes are automatically numbered in the format chapter.scene:
1.11.22.1This numbering updates automatically when you reorder content.
The scene editor supports:
Keyboard Shortcuts:
Ctrl/Cmd + B: BoldCtrl/Cmd + I: ItalicCtrl/Cmd + U: UnderlineCtrl/Cmd + Z: UndoCtrl/Cmd + Shift + Z: RedoEach scene has a private notes area (not included in exports):
Real-time word counts are displayed for:
Character profiles include:
Use locations to:
The Background tab provides a dedicated space for world-building and planning:
Organize your notes into folders:
Document Operations:
Absolute Scenes uses intuitive drag-and-drop for organization:
Deleted content goes to recycle bins (not permanently deleted):
Absolute Scenes automatically saves your work:
Save Status shown in status bar:
Ctrl/Cmd + N: New BookCtrl/Cmd + O: Open BookCtrl/Cmd + S: Save BookCtrl/Cmd + Shift + S: Save AsCtrl/Cmd + E: Export BookCtrl/Cmd + Shift + C: New ChapterCtrl/Cmd + Shift + N: New SceneCtrl/Cmd + B: BoldCtrl/Cmd + I: ItalicCtrl/Cmd + U: UnderlineCtrl/Cmd + Z: UndoCtrl/Cmd + Shift + Z: RedoCtrl/Cmd + Delete: Delete Current SceneF12: Toggle Developer Tools (for debugging)Configure professional book formatting via βοΈ Template Settings:
Choose from premium book fonts:
Premium Fonts:
High-Quality Alternatives:
Standard Fonts:
Font Preview:
Select your genre for optimized font recommendations:
Choose from professional book formats:
Professional mirror margins for book binding:
Mirror margins ensure text doesn't get lost in the binding.
Text Alignment:
Paragraph Style:
Line Height:
Customize how chapters appear:
Header Styles:
Header Options:
Professional headers on each page:
Generate print-ready PDF files:
PDF Features:
Uses for PDF:
Export to clean HTML for web or ebook conversion:
HTML Features:
For Print Publishing:
For Ebooks:
For Beta Readers:
Absolute Scenes integrates with GitHub for cloud backup and version control:
repo scopeWhen syncing is enabled:
If auto-sync is disabled:
Automatic GitHub Backup:
Manual Backup:
.book files to external driveFrom GitHub:
From Local Backup:
.book fileVisualize which characters appear in which scenes:
Uses:
Absolute Scenes automatically detects character names in scene text:
Prevent common words from being detected as characters:
Common blacklist words:
Focus on writing without UI clutter:
F11 or click "Distraction-Free Mode"Esc to exitFeatures:
Add professional book sections:
Material before the main story:
Managing Front Matter:
Material after the main story:
Managing Back Matter:
Add images to your book:
Illustration Management:
Load custom fonts beyond the built-in options:
Note: Custom fonts must have appropriate licenses for commercial use.
Absolute Scenes uses JSON-based .book files with this structure:
{
"title": "Your Book Title",
"author": "Author Name",
"chapters": [
{
"id": "unique-chapter-id",
"title": "Chapter 1: The Beginning",
"scenes": [
{
"id": "unique-scene-id",
"title": "Opening Scene",
"content": "<p>Your scene content...</p>",
"notes": "Private author notes",
"wordCount": 1234,
"created": "2024-01-01T00:00:00.000Z",
"modified": "2024-01-01T12:00:00.000Z"
}
],
"wordCount": 1234
}
],
"characters": [
{
"id": "character-id",
"name": "Character Name",
"role": "Protagonist",
"avatar": "π§",
"description": "Character description",
"notes": "Development notes"
}
],
"locations": [
{
"id": "location-id",
"name": "Location Name",
"type": "City",
"icon": "ποΈ",
"description": "Location description",
"notes": "Location notes"
}
],
"backgroundFolders": [
{
"id": "folder-id",
"title": "General Notes",
"documents": [
{
"id": "document-id",
"title": "World Building Notes",
"content": "<p>Background information...</p>",
"created": "2024-01-01T00:00:00.000Z",
"modified": "2024-01-01T12:00:00.000Z"
}
]
}
],
"template": {
"fontFamily": "Palatino Linotype",
"fontSize": 12,
"lineHeight": 1.6,
"pageSize": "trade-paperback",
"genre": "literary-fiction",
"textAlign": "justified",
"paragraphStyle": "indented",
"pageMargins": {
"top": 1,
"bottom": 1,
"inside": 1.25,
"outside": 1
},
"chapterHeader": {
"style": "both",
"fontSize": 18,
"alignment": "center",
"pageBreak": true
},
"runningHeaders": {
"enabled": true,
"fontSize": 10,
"showAuthor": true,
"showTitle": true
}
},
"github": {
"enabled": false,
"repository": "",
"autoSync": false,
"lastSyncTime": null
},
"characterDetectionBlacklist": ["the", "and", "but"],
"metadata": {
"created": "2024-01-01T00:00:00.000Z",
"modified": "2024-01-01T12:00:00.000Z",
"version": "1.4.22",
"wordCount": 12345
}
}
Opening .book Files:
.book file (if file association set up)absolute-scenes path/to/file.bookSharing .book Files:
Import/Export:
.book formatFrontend:
Desktop Framework:
Build Tools:
PDF/Export:
Testing:
Version Control:
absolute-scenes/
βββ public/
β βββ electron.js # Electron main process
β βββ preload.js # IPC bridge (secure)
βββ src/
β βββ components/ # React components
β β βββ App.jsx # Main application
β β βββ BookStructure.jsx # Chapter/scene tree
β β βββ SceneEditor.jsx # Writing interface
β β βββ SceneList.jsx # Scene navigation
β β βββ CharacterEditor.jsx # Character management
β β βββ CharacterList.jsx # Character browser
β β βββ LocationEditor.jsx # Location management
β β βββ LocationList.jsx # Location browser
β β βββ BackgroundEditor.jsx # Background info editor
β β βββ BackgroundList.jsx # Background navigation
β β βββ CharacterThreadVisualization.jsx # Thread view
β β βββ TemplateManager.jsx # Format settings
β β βββ FontSettings.jsx # Font configuration
β β βββ FontPreview.jsx # Font preview
β β βββ ExportDialog.jsx # Export configuration
β β βββ GitHubIntegration.jsx # Cloud sync setup
β β βββ BackupRecovery.jsx # Backup restoration
β β βββ StatusBar.jsx # Status display
β β βββ DistractionFreeMode.jsx # Focused writing
β β βββ FrontMatterEditor.jsx # Front matter sections
β β βββ BackMatterEditor.jsx # Back matter sections
β β βββ SpellCheckSettings.jsx # Spell check config
β βββ hooks/ # Custom React hooks
β β βββ useBookState.js # Book data state
β β βββ useUIState.js # UI state management
β β βββ useBookOperations.js # Book CRUD operations
β β βββ useDragAndDrop.js # Drag/drop functionality
β β βββ useExpandableList.js # Collapsible lists
β β βββ useInlineEdit.js # Inline editing
β βββ services/ # Business logic services
β β βββ SaveService.js # Auto-save management
β β βββ GitHubSyncService.js # GitHub sync logic
β β βββ EventHandlerService.js # Event coordination
β β βββ ThemeService.js # Theme management
β βββ utils/ # Utility functions
β β βββ fontManager.js # Font loading & management
β β βββ fontSettingsManager.js # Font configuration
β β βββ customFontLoader.js # Custom font loading
β β βββ fontPreview.js # Font preview generation
β β βββ exportManager.js # Export orchestration
β β βββ pdfExporter.js # PDF generation
β β βββ htmlExporter.js # HTML generation
β β βββ epubExporter.js # EPUB generation
β β βββ characterAnalyzer.js # Character detection
β β βββ gitHubService.js # GitHub API wrapper
β β βββ browserEnhancedGitHubService.js # Enhanced sync
β β βββ browserCollaborationService.js # Collaboration
β β βββ fileOperations.js # File I/O
β β βββ electronHelpers.js # Electron utilities
β β βββ textProcessing.js # Text manipulation
β β βββ frontMatterUtils.js # Front matter helpers
β βββ __tests__/ # Integration tests
β βββ index.jsx # React entry point
βββ assets/ # Build assets
β βββ icon.png # Application icon
β βββ installer.nsh # Windows installer script
β βββ linux-post-install.sh # Linux post-install
β βββ entitlements.mac.plist # macOS entitlements
βββ package.json # Dependencies & scripts
βββ vite.config.js # Vite configuration
βββ jest.config.js # Jest configuration
βββ electron-builder.yml # Build configuration
# Clone the repository
git clone https://github.com/orinoco77/absolute-scenes.git
cd absolute-scenes
# Install dependencies
npm install
Start Development:
# Terminal 1: Start Vite dev server (React hot reload)
npm start
# Terminal 2: Start Electron in dev mode
npm run electron-dev
The app will launch with:
Keyboard Shortcuts in Dev Mode:
F12: Toggle DevToolsCtrl/Cmd + R: Reload appCtrl/Cmd + Q: Quit# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
Test Structure:
src/**/__tests__/*.test.jssrc/__tests__/*.test.jsLinting:
# Check for linting errors
npm run lint
# Auto-fix linting issues
npm run lint:fix
# Fail build on warnings (CI)
npm run lint:check
Formatting:
# Format code with Prettier
npm run format
# Check formatting without changes
npm run format:check
Pre-commit Hooks:
Build React App:
npm run build
This creates optimized production files in build/.
Create Installers:
# Build for all supported platforms
npm run dist
# Build for specific platform
npm run dist -- --win # Windows only
npm run dist -- --mac # macOS only
npm run dist -- --linux # Linux only
Output:
dist/Absolute Scenes Setup x.x.x.exedist/Absolute Scenes x.x.x.dmgdist/absolute-scenes_x.x.x_amd64.deb (and .rpm, .AppImage)Components follow this pattern:
import React, { useState, useEffect } from 'react';
/**
* Component description
* @param {Object} props - Component props
*/
const MyComponent = ({ book, onUpdate }) => {
// State
const [localState, setLocalState] = useState(null);
// Effects
useEffect(() => {
// Side effects
}, [dependencies]);
// Handlers
const handleAction = () => {
// Action logic
onUpdate(newData);
};
// Render
return (
<div className="my-component">
{/* Component JSX */}
</div>
);
};
export default MyComponent;
Global State (Context API):
Local State (useState):
Electron IPC for secure main/renderer communication:
// Renderer process (React)
window.electron.ipcRenderer.invoke('save-file', data);
// Main process (Electron)
ipcMain.handle('save-file', async (event, data) => {
// File system operations
});
Available IPC Channels:
save-file: Save .book fileopen-file: Open file pickerexport-pdf: Generate PDFgithub-sync: Sync to GitHubuseBookState:
const { book, setBook, chapters, characters } = useBookState();
useBookOperations:
const {
addChapter,
deleteChapter,
addScene,
deleteScene,
moveScene
} = useBookOperations(book, setBook);
useUIState:
const {
activeScene,
setActiveScene,
sidebarOpen,
toggleSidebar
} = useUIState();
fontManager:
import { loadFont, getAvailableFonts } from './utils/fontManager';
const fonts = getAvailableFonts();
await loadFont('Palatino Linotype');
exportManager:
import { exportToPDF, exportToHTML } from './utils/exportManager';
await exportToPDF(book, settings);
await exportToHTML(book, settings);
gitHubService:
import { syncToGitHub, recoverFromGitHub } from './utils/gitHubService';
await syncToGitHub(token, repo, book);
const book = await recoverFromGitHub(token, repo, commitSha);
git clone https://github.com/YOUR-USERNAME/absolute-scenes.gitgit checkout -b feature/my-featurenpm installnpm testnpm run lint:fixgit commit -m "Add my feature"git push origin feature/my-featurePR Title Format:
feat: Add character relationship trackingfix: Resolve PDF export margin issuedocs: Update installation instructionstest: Add tests for scene editorPR Description Should Include:
Before Submitting:
npm test)npm run lint)npm run format)Versioning:
MAJOR.MINOR.PATCH (e.g., 1.4.22)Release Steps:
package.jsonCHANGELOG.md (if exists)npm testnpm run distgit tag v1.4.22git push origin v1.4.22Cause: SmartScreen filter for unsigned applications
Solution:
Note: Signing certificates are expensive; this is normal for open-source software.
Cause: Gatekeeper security on unsigned apps
Solution:
Alternative:
xattr -cr "/Applications/Absolute Scenes.app"
Cause: AppImage needs execute permission
Solution:
chmod +x Absolute-Scenes-*.AppImage
./Absolute-Scenes-*.AppImage
Possible Causes:
Solutions:
Possible Causes:
.book fileSolutions:
Possible Causes:
Solutions:
Cause: Invalid or expired Personal Access Token
Solution:
repo scopePossible Causes:
Solutions:
username/repositoryCause: Large book or slow internet connection
Solutions:
Possible Causes:
Solutions:
Cause: Large book with complex formatting
Solutions:
Prevention:
Recovery:
mybook-2024-01-15.book)Q: Is Absolute Scenes free?
A: Yes, Absolute Scenes is free and open-source under the MIT License. You can use it for personal or commercial projects at no cost.
Q: What platforms does it support?
A: Windows 10+, macOS 10.14+, and Linux (Ubuntu, Debian, Fedora, RHEL). Both 64-bit and 32-bit architectures on Windows.
Q: Can I use it offline?
A: Yes! Absolute Scenes works entirely offline. GitHub sync is optional and only requires internet when syncing.
Q: What file format does it use?
A: Absolute Scenes uses .book files, which are JSON-based text files. They're human-readable and can be opened in a text editor if needed.
Q: Can I open my files on multiple computers?
A: Yes! Use GitHub sync to access your books from multiple computers, or manually copy .book files via USB drive, email, or cloud storage.
Q: Can I format text (bold, italic, etc.)?
A: Yes, the scene editor supports basic rich text formatting including bold, italic, underline, and paragraph styles.
Q: Does it have spell check?
A: Not currently built-in, but you can export to Word or use OS-level spell checking in your browser.
Q: Can I add images to my book?
A: Yes, use the Illustrations tab to add images and assign them to specific scenes or chapters.
Q: How do I reorder scenes?
A: Simply drag and drop scenes in the Book Structure panel. You can move them within chapters or between chapters.
Q: Can I write out of order?
A: Absolutely! Create scenes in any order and rearrange them later. This is one of the key advantages of scene-based writing.
Q: Can I export to Word?
A: Not directly, but you can export to HTML and then open in Word. PDF export is the primary format for publishing.
Q: Are the PDFs print-ready?
A: Yes! PDFs use professional typography, mirror margins, running headers, and proper page breaks suitable for print-on-demand services like KDP, IngramSpark, or Lulu.
Q: Can I create ebooks?
A: Export to HTML and use tools like Calibre to convert to EPUB or MOBI formats for ebook platforms.
Q: What about Amazon KDP?
A: The PDF export works perfectly with Amazon KDP for paperback publishing. For Kindle ebooks, export HTML and convert to MOBI.
Q: Can I include a table of contents?
A: Yes, the PDF export option includes automatic table of contents generation based on your chapter structure.
Q: Do I need to know Git to use GitHub sync?
A: No! Absolute Scenes handles all Git operations automatically. You just need a GitHub account and a Personal Access Token.
Q: Is my book private on GitHub?
A: Yes, if you create a private repository (GitHub's default). Only you can access private repositories unless you explicitly share them.
Q: How much does GitHub cost?
A: GitHub is free for unlimited private repositories. You only need a free GitHub account.
Q: Can I collaborate with co-authors?
A: Yes! Share your GitHub repository with collaborators. They can clone the repository and work on the same book, though merge conflicts may occur if editing simultaneously.
Q: What if GitHub is down?
A: Your local .book file always remains on your computer. GitHub is only for backup and sync; you can continue working offline.
Q: How many characters can I add?
A: No limit! Add as many characters, locations, and background documents as you need.
Q: Does character thread visualization update automatically?
A: Yes! As you write and mention character names in scenes, the visualization updates in real-time.
Q: Can I add custom metadata to characters?
A: You can add name, role, avatar, description, and notes. For more detailed tracking, use Background documents.
Q: How do I organize research notes?
A: Use the Background tab to create folders and documents for research, world-building, timelines, and development notes.
Q: Does it autosave?
A: Yes! Auto-save runs every 3 seconds after you stop typing, and also when changing scenes or closing the app.
Q: Can I customize the interface?
A: Currently, the interface is fixed, but theme customization is on the roadmap.
Q: Does it support multiple languages?
A: The UI is in English, but you can write in any language. Unicode is fully supported.
Q: How do I report bugs?
A: File an issue on GitHub Issues with details about the problem and your system.
Q: Can I request features?
A: Yes! Open a feature request on GitHub Issues or discuss in GitHub Discussions.
Q: How is this different from Scrivener?
A: Absolute Scenes is free, open-source, and focused specifically on scene-based organization with modern GitHub integration. Scrivener has more features but is commercial software.
Q: How is this different from Word?
A: Word is a general-purpose word processor. Absolute Scenes is designed specifically for book writing with chapter/scene organization, character tracking, and professional book formatting built-in.
Q: How is this different from Google Docs?
A: Google Docs requires internet and stores data in Google's cloud. Absolute Scenes is desktop-based, works offline, and you control where your data is stored.
Writing Craft:
Self-Publishing:
Formatting & Typography:
Tools:
Absolute Scenes is licensed under the MIT License:
MIT License
Copyright (c) 2025 Adam Short
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
What this means:
Created By:
Built With:
Special Thanks:
Premium fonts mentioned in this application:
Please ensure you have proper licenses for any fonts you use commercially.
Recent updates include:
For complete version history, see the README Version History.
For General Questions:
For Bug Reports:
.book file if applicableFor Feature Requests:
For Direct Contact:
Last Updated: 2025-10-02
Wiki Version: 1.0
App Version: 1.4.22
Made with β€οΈ for authors who care about beautiful books
"Great stories deserve great tools. Absolute Scenes gives you the professional foundation to write, organize, and publish books that look as good as they read."