Add your description here
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fsc_assistant-0.1.11.tar.gz.
File metadata
- Download URL: fsc_assistant-0.1.11.tar.gz
- Upload date:
- Size: 99.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bb07193f71c4520da155891eee9cbe8e5ec9272ab28fd656d661a78632502e2
|
|
| MD5 |
4b469f5c4d10d51c5a964274bfe48c38
|
|
| BLAKE2b-256 |
c8e7c0b3af6204618202a2ddec86f9448f4b338e776891736aa9b33b1d245e13
|
Provenance
The following attestation bundles were made for fsc_assistant-0.1.11.tar.gz:
Publisher:
python-publish.yml on devsunny/fsc-assistant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fsc_assistant-0.1.11.tar.gz -
Subject digest:
1bb07193f71c4520da155891eee9cbe8e5ec9272ab28fd656d661a78632502e2 - Sigstore transparency entry: 725076802
- Sigstore integration time:
-
Permalink:
devsunny/fsc-assistant@e6b330f9071531e40c129dee3e0530d08db79b11 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/devsunny
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e6b330f9071531e40c129dee3e0530d08db79b11 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file fsc_assistant-0.1.11-py3-none-any.whl.
File metadata
- Download URL: fsc_assistant-0.1.11-py3-none-any.whl
- Upload date:
- Size: 110.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
083833e7f56c013ec1bb3f304d555be5c324c6fc1d67443fbafe091e49f7efb8
|
|
| MD5 |
5746e370d2c64552f331e30b449f1332
|
|
| BLAKE2b-256 |
e0af4359e06c40df02be21ad1515a8b4bf5c31b5fd5225a73f25df215d377fc1
|
Provenance
The following attestation bundles were made for fsc_assistant-0.1.11-py3-none-any.whl:
Publisher:
python-publish.yml on devsunny/fsc-assistant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fsc_assistant-0.1.11-py3-none-any.whl -
Subject digest:
083833e7f56c013ec1bb3f304d555be5c324c6fc1d67443fbafe091e49f7efb8 - Sigstore transparency entry: 725076803
- Sigstore integration time:
-
Permalink:
devsunny/fsc-assistant@e6b330f9071531e40c129dee3e0530d08db79b11 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/devsunny
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e6b330f9071531e40c129dee3e0530d08db79b11 -
Trigger Event:
workflow_dispatch
-
Statement type: