FSC Assistant
Overview
FSC Assistant (Fully Self-Coding Assistant) is a powerful command-line tool that leverages Large Language Models to help you build software with ease. It provides an interactive AI-powered shell for coding assistance, document analysis, web scraping, and seamless integration with external services like JIRA and GitHub.
Key Features
- 🤖 Interactive AI Shell - Chat with LLMs in a rich terminal interface
- 📁 File Operations - Read, write, and analyze files and projects
- 🌐 Web Scraping - Fetch webpages, take screenshots, search Google
- 🔗 Service Integrations - JIRA and GitHub integration
- ⚡ Blazing Fast - Optimized startup (0.92s, 93% faster than v0.0.1)
- 🛠️ Developer Tools - Execute shell commands, manage conversation history
- 🎨 Rich Output - Beautiful Markdown rendering in the terminal
Quick Start
Installation
# Clone the repository
git clone https://github.com/devsunny/fsc-assistant.git
cd fsc-assistant
# Install in development mode
pip install -e .
# Install with optional dependencies (recommended)
pip install 'fsc-assistant[web]'
playwright install chromium
Configuration
Create a configuration file at ~/.fsc-assistant.env.toml:
[llm]
default_model = "claude-3-5-sonnet-20241022"
max_completion_tokens = 8192
provider = "anthropic"
[anthropic]
api_key = "your-anthropic-api-key"
base_url =
[openai]
api_key = "your-openai-api-key"
base_url =
Basic Usage
# Start the interactive shell
fsc-assistant shell
# Or use Python module
python -m assistant.agents.shell
Usage Examples
Interactive Shell
Once in the shell, you can:
# Ask about your code
Explain how the shell.py file works
# Analyze documents
Summarize the docs/proposals/ directory
# Execute system commands
!ls -la
!git status
# Web operations
# Integration with external services
Create a JIRA issue in project PROJ with title "Bug fix needed"
Create a GitHub PR from branch feature-branch to main
# Manage conversation
history # Show conversation history
clear # Clear screen
exit # Exit shell
Special Commands
| Command | Description |
|---|---|
!command |
Execute system command |
exit/quit/q/bye |
Exit the shell |
clear |
Clear the screen |
history |
Show conversation history |
model |
Show current LLM model |
Architecture
Core Components
src/assistant/
├── agents/ # AI Agent implementations
│ ├── shell.py # Interactive shell (main entry)
│ ├── agent_repo.py # Tool repository (lazy loaded)
│ ├── tools/ # Core tools (file, system, time)
│ ├── web/ # Web scraping tools
│ └── integrations/ # JIRA, GitHub integrations
├── cli.py # CLI entry point
├── config/ # Configuration management
├── llm/ # LLM orchestration
└── utils/ # Utility functions
Performance Optimized
The assistant is highly optimized for fast startup:
- Lazy Loading: Heavy modules (Google API, JIRA, GitHub) load only when used
- Smart Imports: Explicit imports avoid unnecessary loading
- Caching: Tool lists and configurations cached after first access
Performance Metrics:
- Startup time: 0.92s (93% improvement from v0.0.1)
- Memory footprint: Minimal (only load what's needed)
- File operations: 52% reduction in system calls
Tool Reference
File System Tools
| Tool | Description |
|---|---|
save_text_file_to_disk |
Save text content to a file |
load_text_file_from_disk |
Load text content from a file |
save_binary_file_to_disk |
Save binary content to a file |
load_image_files_from_disk |
Load image files |
list_files_in_current_project |
List all files in project |
get_current_project_root_folder |
Get project root directory |
System Tools
| Tool | Description |
|---|---|
run_shell_command |
Execute shell commands interactively |
get_current_local_time |
Get current local time with timezone |
Web Tools
| Tool | Description |
|---|---|
fetch_webpage_content |
Extract content from webpages |
capture_web_page_screenshot |
Take screenshots of webpages |
download_web_file_from_url |
Download files from URLs |
search_google_custom_api |
Search Google with custom API |
Integration Tools
| Tool | Description |
|---|---|
get_jira_issue |
Get JIRA issue details |
update_jira_issue_status |
Update JIRA issue status |
add_jira_comment |
Add comment to JIRA issue |
create_jira_issue |
Create new JIRA issue |
create_github_pull_request |
Create GitHub pull request |
Configuration
Configuration File
The assistant uses a TOML configuration file (.fsc-assistant.env.toml):
[llm]
default_model = "claude-3-5-sonnet-20241022"
max_completion_tokens = 8192
temperature = 0.7
[llm.anthropic]
api_key = "sk-ant-..."
[llm.openai]
api_key = "sk-..."
[google]
api_key = "your-google-api-key"
search_engine_id = "your-search-engine-id"
[jira]
server = "https://your-domain.atlassian.net"
username = "your-email@example.com"
api_token = "your-jira-api-token"
[github]
token = "ghp_..."
Environment Variables
FSC_ASSISTANT_CONFIG- Path to custom config fileANTHROPIC_API_KEY- Anthropic API keyOPENAI_API_KEY- OpenAI API keyDEBUG- Enable debug mode (true/false)
Installation Options
Minimal Installation
pip install -e .
With Web Scraping
pip install 'fsc-assistant[web]'
playwright install chromium
Full Installation
pip install 'fsc-assistant[all]'
playwright install chromium
Development Installation
git clone https://github.com/yourusername/fsc-assistant.git
cd fsc-assistant
pip install -e ".[dev]"
Development
Project Structure
fsc-assistant/
├── src/assistant/ # Main package
│ ├── agents/ # AI agents and tools
│ ├── cli.py # CLI entry point
│ ├── config/ # Configuration
│ ├── llm/ # LLM orchestration
│ ├── mcp/ # Model Context Protocol
│ └── utils/ # Utilities
├── docs/ # Documentation
│ └── proposals/ # Architecture proposals
├── tests/ # Test suite
├── pyproject.toml # Project configuration
└── README.md # This file
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=src/assistant
# Test startup performance
python verify_optimizations.py
# Performance analysis
python analyze_performance.py
Code Quality
# Format code
black src/
# Type checking
mypy src/
# Linting
flake8 src/
Recent Updates
v0.1.0 (Current)
Performance Improvements
- ⚡ 93% faster startup (13.7s → 0.92s)
- 🚀 Lazy loading for heavy dependencies
- 📉 52% reduction in file system operations
- 🎯 Optimized import patterns
New Features
- 🔍 Google Custom Search API integration
- 📄 Enhanced document analysis
- 🎨 Rich Markdown output in terminal
- 🛡️ Improved error handling
Bug Fixes
- Fixed import loops and circular dependencies
- Improved error messages for missing dependencies
- Better handling of missing configuration
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Quick Contribution Steps
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Run the test suite (
pytest) - Submit a pull request
Roadmap
Planned Features
- Plugin System - Extensible tool architecture
- More LLM Providers - Gemini, Llama, etc.
- Database Integration - PostgreSQL, MySQL support
- Advanced Web Scraping - JavaScript rendering, forms
- Team Collaboration - Shared configurations and history
- IDE Integration - VS Code extension
- Cloud Storage - S3, GCS, Azure integration
Long-term Vision
- AI-Powered Development - End-to-end software development assistance
- Multi-modal Support - Image and code analysis
- Project Generation - Scaffold entire projects from descriptions
- Smart Refactoring - AI-assisted code refactoring
- Documentation Generation - Auto-generate docs from code
Troubleshooting
Common Issues
Slow Startup
If startup is slow (>2s), check:
- Are you using the latest version? (
pip install -U fsc-assistant) - Is lazy loading working? (
python -c "from assistant.agents.shell import AgenticShell; print('OK')") - Are there unnecessary imports in your config?
Missing Dependencies
# Install missing web dependencies
pip install 'fsc-assistant[web]'
playwright install chromium
# Install all optional dependencies
pip install 'fsc-assistant[all]'
Configuration Issues
# Check config file location
echo $FSC_ASSISTANT_CONFIG
# Validate config syntax
python -c "import toml; toml.load('.fsc-assistant.env.toml')"
Getting Help
- 📖 Check the documentation
- 🔍 Search existing issues
- 💬 Start a discussion
- 🐛 Report a bug
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Thanks to all contributors who have helped shape this project
- Inspired by the need for better AI-assisted development tools
- Built with amazing open-source libraries and tools
Happy Coding! 🤖✨
For more information, check out our documentation and examples.
Metadata
Release files for fsc-assistant 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fsc_assistant-0.1.11.tar.gz | 99.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fsc_assistant-0.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 209.4 kB
Release files / fsc_assistant-0.1.11.tar.gz
| Download URL | fsc_assistant-0.1.11.tar.gz |
|---|---|
| Size | 99.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1bb07193f71c4520da155891eee9cbe8e5ec9272ab28fd656d661a78632502e2
|
|
BLAKE2b-256 checksum How to use checksums |
c8e7c0b3af6204618202a2ddec86f9448f4b338e776891736aa9b33b1d245e13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 25, 2025.
Transparency logRelease files / fsc_assistant-0.1.11-py3-none-any.whl
| Download URL | fsc_assistant-0.1.11-py3-none-any.whl |
|---|---|
| Size | 110.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
083833e7f56c013ec1bb3f304d555be5c324c6fc1d67443fbafe091e49f7efb8
|
|
BLAKE2b-256 checksum How to use checksums |
e0af4359e06c40df02be21ad1515a8b4bf5c31b5fd5225a73f25df215d377fc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 25, 2025.
Transparency log