Project Info
This project did not submit a demo video on Devpost.
A development tool specialized in bug elimination right from your command line. ⭐️
Inspiration
Splat was inspired by a universal coding gripe: debugging. Despite a seemingly simple concept, none of the Splat team had found a simple and intuitive debugging assistant–so we created our own, inspired by linters. 🔨
What it does
&
How we built it
Splat takes your compile & runtime errors and does the squinting for you. Splat retrieves, sorts, & parses all the errors into a graph structure, & creates an undirected adjacency list, to list the relationships between each function mentioned in the stack trace. Splat compiles & compresses the list so that it can interpret the error & its workflow through the context that we have. Finally, the interpretation is returned to your terminal as Where and What the error is. With a simple click, you're able to see How to fix your error and use suggestions right from your code. Viola! ⚙️ Technologies used The Splat team used Python, Groq, Fetch.ai, and Llama to build a system of file packaging, prompt engineering, and error parsing. ❌
Challenges we ran into
We were unable to correct multiple errors at a time: this took too much circumstance and context implementation that we didn't have time for implementation. Ensuring universality for all runners (py, node, javac, ...) were difficult for code replacement/completion, although error parsing was certainly successful. Fetch.ai's documentation was not fleshed out - although we're a really big fan of the tech, we ran into implementation issues due to lack of documentation and help around the technology. Parsing all errors and retrieving the absolute path was one of our toughest battles but has been overpassed. Judges expressed concern over context window, and possibilities of exceeding it. Although we did consider the context window in case of production files (1M+ lines), we attempted to resolve this problem by selecting only relevant files and their relationships with those who are Nth degree related. 🏆
Accomplishments we're proud of
None of us have ever thought about coding DevTools. When Warp told us that we can make something in the command line, we thought about what all programmers will always run into - errors! Listed below are individual, independent achievements. Ensured universality between all languages when compiling and simplifying errors Robust, sleek error parsing with sub-100ms response time 🍎
What we learned
Working with CLI Working with development tools Error handling and in-depth exception parsing 📝 What do we plan next? Visiting Top Dog and Sweethearts Cafe in Berkeley. Making it so we can handle multiple exceptions, and solve each of them with context of the previous error. We planned on doing this initially by returning a list of objects and iterating over them, but we decided to stick to looking at an error, one at a time. If we were to implement it, we would use a queue and between every operation, we would process the context after each error, and pass down the line.
splat
splat is a tool that combines your compile/runtime errors and grabs context from every crevice to deliver a highly educated debug response. This is perfect for whenever you have an error that needs to be quickly fixed, understood, and prevented for later in the future. created at calhacks 11.0
/\_/\
( o.o )
> ^ <
Features
- AI-Optimized: We use an extremely fast inference model Groq in order to produce an instant debug error, with still the same amount of accuracy.
- Simple to Use: splat can be used out-of-the-box and globally in any project without any configuration.
- Git Aware: splat takes into consideration your .gitignore files so that we won't use any sensitive info.
- Highly Contextual: You can use splat with a
-rflag, grabbing all nodes to the Nth degree related to all error stack files in order to grab the most related content, delivering a highly accurate, optimized, and contextual debug response.
Known Bugs
- splat will not conform to any formatting configurations when inserting code
- splat does not do well with running sub-module entrypoints that do not originate in the root directory
Quick Start
You can use splat out of the box:
splat squash <?-r> <!entrypoint>.
Example: Just like you would enter your app, do so with splat.
splat squash "python3 foo.py"
splat squash -r "python3 main.py"
And that's it!
Analysis
View
Metric
- 55
- 44
- 24
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- CSSIn code
- FastAPIIn code
- HTMLIn code
- JavaIn code
- JavaScriptIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
11 of 11 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
61 KB
Source files
40
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ehcaw/splat
69 files · 1.2 MB · @ 756e23f
Structure
API & routing
1 file · 1%Request entry points: routes, handlers and controllers.
Application logic
19 files · 28%Domain rules, services and shared utilities.
+1 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python76%
- Markdown10%
- TypeScript4%
- JavaScript3%
- HTML3%
- CSS2%
- Other (3)2%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 15- black
- click
- dotenv
- fastapi
- groq
- prompt_toolkit
- pydantic
- pydantic_ai
- python-dotenv
- repopack
- requests
- setuptools
- uvicorn
- virtualenv
- zmq
test/test-nextjs-project/package.json
npm · 11- next
- react
- react-dom
- +8 more
test/test-react-app/package.json
npm · 7- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- react
- react-dom
- react-scripts
- web-vitals
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.