Skip to main content

Ficsit

A lightweight coding agent harness with tool execution and validation loops. "Fix it, just sit there."

Installation

For an isolated command-line installation, use pipx:

pipx install ficsit

Alternatively, install it in your active Python environment:

pip install ficsit

Quick Start

# Start Ficsit inside the project it may access
cd /path/to/your/project
ficsit

# Or start with a specific model
ficsit --model gpt-4o-mini

# Show the installed version without loading configuration
ficsit --version

The directory where ficsit starts is the active workspace. File reads, searches, writes, and deletes are restricted to that directory; generated files are written there directly and are not placed in an implicit CODE/ directory.

Configuration

API Key is stored in ~/.ficsit/.env (automatically .gitignored).

ficsit config set key     # Enter API Key (hidden input)
ficsit config show key    # Show if set
ficsit config set base_url https://你的中转站/v1
ficsit config show
ficsit config delete base_url|model|key

Built-in Commands

Command Description
/help Show help
/status Show session status
/memory View past session summaries
/exit Exit and save session

Security

  • API Key is stored in ~/.ficsit/.env — a plaintext file. Ensure your home directory has appropriate permissions.
  • .env is automatically added to .gitignore to prevent accidental commits.
  • Guardian rules block dangerous operations (e.g., rm -rf /, system file writes).
  • File tools cannot resolve paths outside the directory where Ficsit was started.
  • Shell commands run with the workspace as cwd, but they are not an OS-level sandbox. Use a container or system sandbox before running untrusted code.
  • Never hardcode credentials in code.

Development

pip install -e ".[dev]"
pytest tests/ -v
ruff check .

Building A Release

python3 -m build
python3 -m twine check dist/*

This creates a wheel and source distribution in dist/. Release preparation, clean-environment installation checks, and Trusted Publishing setup are documented in docs/RELEASING.md.

Project Structure

ficsit/
├── cli.py            # CLI entry point
├── config.py         # Configuration (TOML)
├── controller.py     # State machine controller
├── guardian.py       # Danger action guardrails
├── classifier.py     # Failure classification
├── memory.py         # Session memory
├── models.py         # Data models
├── repl.py           # REPL interface
├── llm/              # LLM client abstraction
├── states/           # State machine states
├── tools/            # Tool system
└── validators/       # Validation system
tests/
└── ...

Platform Support

Python 3.11+, macOS / Windows / Linux.

License

Ficsit is licensed under the Apache License 2.0.

Known Limitations

  • Requires OpenAI API Key
  • No streaming support
  • Pure synchronous execution

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ficsit-0.1.0.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ficsit-0.1.0-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

Details for the file ficsit-0.1.0.tar.gz.

File metadata

  • Download URL: ficsit-0.1.0.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ficsit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ee51f230d34ce67cec76304ec6d6fc16de94889b0afabd4b406c95a751038ab5
MD5 425b948ccca22ec968f6262f77291848
BLAKE2b-256 d8c4ef4f0d57d8cd10c200851e8e649e05ada86e2799415c3711e35e5f8b0c6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ficsit-0.1.0.tar.gz:

Publisher: publish.yml on CaelusHu/Ficsit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ficsit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ficsit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 48.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ficsit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70eecfb7706641e463839a60afb4778ff55b8c9942ae3bd91efc07c150a56c87
MD5 b48195c2052bf12375e94a8005371caa
BLAKE2b-256 4ea0fd472239110b0078026eaee0517a1caf630d92d2d9b009b736ecb2499968

See more details on using hashes here.

Provenance

The following attestation bundles were made for ficsit-0.1.0-py3-none-any.whl:

Publisher: publish.yml on CaelusHu/Ficsit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page