Academic Writing Assistant for Continuous Argumentation Technique
TAC Writer is a modern academic writing assistant designed to help students and researchers create structured academic texts using the Continuous Argumentation Technique (TAC in portuguese). Built with GTK4 and libadwaita, TAC provides an intuitive interface for organizing thoughts, managing document structure, and producing high-quality academic content.
The Continuous Argumentation Technique emphasizes interconnected paragraphs that build upon each other, making complex topics easier to understand and arguments more compelling.
Main editing interface with paragraph structure
Welcome Tac Writer
- Guided Dialog Boxes Types for a better Paragraph: Introduction, Argument, Quote, Conclusion
- Drag-and-Drop Reordering: Easily reorganize your document structure
- Type-Specific Formatting: Automatic formatting based on paragraph type
- Template System: Start with pre-configured academic structures
- GTK4 + libadwaita: Native Linux desktop integration
- Adaptive Design: Responsive layout that works on various screen sizes
- Dark Mode Support: Automatic theme switching with system preferences
- Accessibility: Full keyboard navigation and screen reader support
- Live Statistics: Word count, paragraph count
- Progress Tracking: Monitor your writing progress in real-time
- Reading Time: Estimated reading time calculation
- Auto-Save: Never lose your work with automatic saving
- Project Library: Organize and manage multiple writing projects
- Search & Filter: Quickly find specific projects
- Backup System: Automatic backup creation
- Multiple Formats: TXT, ODT, PDF
- Academic Standards: Export formats suitable for academic submission
- Pomodoro Timer: Built-in focus timer for writing sessions
- Spell Checking: Real-time spell checking support
- Keyboard Shortcuts: Efficient workflow with customizable shortcuts
- Distraction-Free Mode: Focus on writing with minimal UI
- AI Assistant: Connect to Gemini or OpenRouter to rewrite, resume or suggest paragraphs directly from the editor (
Ctrl+Shift+I)
- OS: Arch Linux, Manjaro, BigCommunity, or Arch-based distributions
- Python: 3.9+
- GTK: 4.0+
- libadwaita: 1.0+
- Memory: 2GB RAM
- Storage: 100MB available space
- Memory: 4GB+ RAM for large documents
- Display: 1920x1080 or higher resolution
- Storage: 1GB+ for project storage and backups
For Arch-based distributions, add the BigCommunity repository and install via pacman:
sudo pacman-key --recv-keys 1EA0CEEEB09B44A3
sudo pacman-key --lsign-key 1EA0CEEEB09B44A3Edit /etc/pacman.conf and add:
[community-stable]
SigLevel = PackageRequired
Server = https://repo.communitybig.org/stable/$archsudo pacman -Sy comm-tac-writer# Install system dependencies
sudo pacman -Sy python gtk4 libadwaita python-gobject python-cairo
# Optional: Development tools
sudo pacman -S python-pip git base-devel# Clone repository
git clone https://github.com/big-comm/comm-tac-writer.git
cd comm-tac-writer
# Install Python dependencies
pip install --user -r requirements.txt
# Run application
python main.py-
Launch TAC Writer
tac-writer # If installed via package manager # OR python main.py # If running from source
-
Create Your First Project
- Click "Start" on the Academic Essay template
- Enter your project name and details
- Begin writing with guided paragraph types
-
Structure Your Document
- Add different paragraph types using the toolbar
- Use drag-and-drop to reorder paragraphs
- Apply consistent formatting across your document
-
Export and Share
- Use Ctrl+E to open export dialog
- Choose your preferred format (ODT, PDF, TXT, HTML)
- Configure export settings and metadata
- Open Preferences ▸ AI Assistant, enable the feature and choose your provider (Gemini ou OpenRouter).
- Informe o Model ID e a API key correspondente (OpenRouter também aceita Referer e Título opcionais para ranking).
- No editor, posicione o cursor ou selecione o trecho desejado e pressione
Ctrl+Shift+I(ou clique no avatar da barra superior). - Descreva como quer melhorar o parágrafo, escolha uma sugestão rápida se quiser e envie.
- Analise o retorno: copie, insira diretamente no texto ou aproveite as sugestões adicionais.
The Continuous Argumentation Technique follows this structure:
- Introduction: Summarizes the topic to be addressed
- Argumentation: Develops the main points and evidence
- Quote: Supports arguments with relevant citations
- Argumentative Resumption: Links back to previous arguments
- Conclusion: Synthesizes and closes the presented ideas
| Shortcut | Action | Description |
|---|---|---|
Ctrl+N |
New Project | Create a new writing project |
Ctrl+O |
Open Project | Open an existing project |
Ctrl+S |
Save Project | Save current project |
Ctrl+E |
Export Project | Export to various formats |
Ctrl+, |
Preferences | Open application settings |
Ctrl+Z |
Undo | Undo last action |
Ctrl+Shift+Z |
Redo | Redo last undone action |
Ctrl+Alt+I |
Insert Image | Open the insert image dialog |
Ctrl+Shift+I |
Ask AI Assistant | Open the AI prompt dialog |
Ctrl+Q |
Quit | Exit application |
F11 |
Focus Mode | Toggle distraction-free writing |
TAC Writer follows XDG Base Directory specification:
- Configuration:
~/.config/tac/ - User Data:
~/.local/share/tac/ - Cache:
~/.cache/tac/ - Projects:
~/.local/share/tac/projects/
- Themes: Light, dark, or system preference
- Fonts: Choose from installed system fonts
- Templates: Create custom document templates
- Export Settings: Configure default export formats
- Shortcuts: Customize keyboard shortcuts
tac/
├── main.py # Application entry point
├── application.py # Main application controller
├── requirements.txt # Python dependencies
├── core/ # Core business logic
│ ├── models.py # Data models (Project, Paragraph)
│ ├── services.py # Business services (ProjectManager, ExportService)
│ └── config.py # Configuration management
├── ui/ # User interface components
│ ├── main_window.py # Primary application window
│ ├── components.py # Reusable UI components
│ └── dialogs.py # Dialog windows and forms
├── utils/ # Utility functions
│ ├── helpers.py # Text processing, validation
│ └── i18n.py # Internationalization support
└── data/ # Application data
├── templates/ # Document templates
└── icons/ # Application icons
# Clone repository
git clone https://github.com/big-comm/comm-tac-writer.git
cd comm-tac-writer
# Install development dependencies
sudo pacman -S python-pytest python-black python-flake8 python-mypy
# Install Python development packages
pip install --user pre-commit black flake8 mypy pytest
# Set up pre-commit hooks
pre-commit install- Python Style: PEP 8 compliance, formatted with Black
- Type Hints: Use type annotations for better code clarity
- Documentation: Docstrings for all public functions and classes
- Testing: Unit tests for core functionality
- Commits: Follow Conventional Commits specification
# Run all tests
python -m pytest
# Run with coverage
python -m pytest --cov=src
# Run specific test file
python -m pytest tests/test_models.pyWe welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Bug Fixes: Help improve stability and user experience
- Feature Development: Implement items from our roadmap
- Documentation: Improve user guides and developer docs
- Translations: Add support for additional languages
- Testing: Expand test coverage and add integration tests
- Documentation: GitHub Wiki
- Community: BigCommunity Telegram
- Issues: GitHub Issues
When reporting bugs, please include:
- System Information: OS version, desktop environment, GTK version
- Reproduction Steps: Clear steps to reproduce the issue
- Expected vs Actual Behavior: What should happen vs what actually happens
- Screenshots/Logs: Visual aids or relevant log files
- Project Files: Sample projects that demonstrate the issue (if applicable)
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
- GNOME Project for GTK4 and libadwaita framework
- Python GObject community for excellent Python bindings
- BigCommunity platform for hosting and support
- Academic Community for feedback and testing
- Contributors who help improve TAC Writer
If you use TAC Writer in academic work, please cite:
@software{tac_writer,
title = {TAC Writer: Academic Writing Assistant for Continuous Argumentation Technique},
author = {BigCommunity Development Team},
year = {2024},
url = {https://github.com/big-comm/comm-tac-writer},
version = {1.1.0}
}
Made with ❤️ by the BigCommunity Team
BigCommunity.com • GitHub
