ScrollWise AI is an open-source AI-powered writing assistant that helps authors create, manage, and analyze their stories. It provides comprehensive worldbuilding tools, character development features, and AI-assisted content generation.
Note: This project is under active development. Some features may be experimental or subject to change.
- Create and organize multiple writing projects
- Chapter management and organization
- Import existing documents (PDF, DOCX)
- Real-time content editing and saving
- Character development assistance
- Worldbuilding generation
- Plot consistency checking
- Relationship analysis between characters
- Knowledge base generation from your content
- Maintain a detailed story bible
- Track characters, locations, items, and lore
- Automatic codex entry generation from your writing
- Relationship mapping between story elements
- Primary support for Windows
- Cross-platform compatibility for other operating systems in development
- Flutter SDK >=3.1.3
- Python 3.8+
- No external database required (uses local SQLite by default)
- No API keys required for basic functionality
- Clone the repository:
git clone https://github.com/LotusSerene/scrollwise-ai.git
cd scrollwise-ai
- Install backend dependencies:
cd backend
pip install -r requirements.txt
- Install frontend dependencies:
cd frontend
flutter pub get
-
Configure environment variables:
Copy the example environment files and customize as needed:
# Backend configuration cd backend copy .env.example .env # Frontend configuration cd ../frontend copy .env.example .env
Backend Environment (backend/.env):
ALLOWED_ORIGINS
: CORS origins (automatically set by ServerManager)LOG_DIR
: Log directory path (automatically set by ServerManager)YOUR_SITE_URL
: Optional site URL for analyticsYOUR_SITE_NAME
: Optional site name for analytics
Frontend Environment (frontend/.env):
API_URL
: Backend server URL (default: http://localhost:8080)
Note: The application works entirely offline with local storage. No external API keys or cloud services are required for core functionality.
-
Run the application:
# Start backend server
cd backend
python server.py
# Start frontend (in a new terminal)
cd frontend
flutter run
- Flutter/Dart - Cross-platform UI framework
- Provider - State management solution
- Material Design - Modern UI components
- HTTP - API communication with backend
- Path Provider - File system access
- Logging - Application logging and debugging
- FastAPI - Modern web framework for building APIs
- SQLAlchemy - Database ORM with async support
- LangChain - AI/LLM integration framework
- Qdrant - Local vector database for semantic search
- Pydantic - Data validation and serialization
- SQLite - Local database storage (no setup required)
- Python-dotenv - Environment variable management
ScrollWise AI follows a client-server architecture:
- Flutter Frontend: Cross-platform UI handling user interactions
- FastAPI Backend: RESTful API server managing business logic
- Local SQLite: Primary data storage for projects, chapters, and metadata
- Local Qdrant: Vector database for semantic search and AI-powered features
- File System: Local storage for logs, cache, and temporary files
- User interacts with Flutter UI components
- UI triggers actions through Provider-based state management
- HTTP requests sent to FastAPI backend
- Backend processes requests using SQLAlchemy and LangChain
- Results stored in local SQLite and Qdrant databases
- Responses returned to frontend for UI updates
GeminiFrontend/
βββ backend/
β βββ .env.example # Backend environment template
β βββ requirements.txt # Python dependencies
β βββ server.py # FastAPI application entry point
β βββ database.py # Database models and operations
β βββ agent_manager.py # AI agent management
β βββ api_key_manager.py # API key handling (if needed)
β βββ vector_store.py # Qdrant vector operations
β βββ models.py # Pydantic data models
βββ frontend/
β βββ .env.example # Frontend environment template
β βββ lib/
β β βββ components/ # Feature-specific UI logic
β β βββ models/ # Data models
β β βββ providers/ # State management
β β βββ screens/ # Full-page views
β β βββ utils/ # Utilities and configuration
β β βββ widgets/ # Reusable UI components
β β βββ main.dart # Application entry point
β βββ pubspec.yaml # Flutter dependencies
βββ README.md # This file
We welcome contributions! You can contribute to the project by creating a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Follow Flutter/Dart coding conventions
- Use Provider pattern for state management
- Implement proper error handling and logging
- Write clear commit messages
- Test on Windows platform primarily
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
This means:
- β You can use the software freely
- β You can modify the software
- β You can distribute the software
- β You can use it commercially
- β You must disclose source code when you distribute or serve the software
- β You must state changes you make to the code
- β You must license derivative works under AGPL-3.0
ScrollWise AI is and will always be free and open source. If you'd like to support the project:
- β Star the repository
- π Report bugs and contribute fixes
- π Improve documentation
- π¨ Contribute new features
Backend won't start:
- Ensure Python 3.8+ is installed
- Install dependencies:
pip install -r requirements.txt
- Check that port 8080 is available
Frontend can't connect to backend:
- Verify backend is running on correct port
- Check
API_URL
in frontend/.env file - Ensure CORS settings allow frontend origin
Database errors:
- Delete local database files to reset:
*.db
,*.sqlite
- Restart both backend and frontend
Missing dependencies:
- Run
flutter doctor
to check Flutter installation - Run
pip list
to verify Python packages
- Backend logs:
logs/server.log
- Frontend logs: Available in console during development
- Vector store data:
qdrant_db/
directory
ScrollWise AI is under active development. Current focus areas:
- β Core writing and project management features
- β Local-first architecture with no external dependencies
- β AI-powered content analysis and generation
- π Cross-platform compatibility improvements
- π Enhanced UI/UX polish
- π Advanced AI features and integrations